如何在 C# 中发送 HTTPS GET 请求

Posted

技术标签:

【中文标题】如何在 C# 中发送 HTTPS GET 请求【英文标题】:How to send an HTTPS GET Request in C# 【发布时间】:2010-10-30 22:34:13 【问题描述】:

相关:how-do-i-use-webrequest-to-access-an-ssl-encrypted-site-using-https

【问题讨论】:

【参考方案1】:

在 url 末尾添加?var1=data1&var2=data2 以通过 GET 向页面提交值:

using System.Net;
using System.IO;

string url = "https://www.example.com/scriptname.php?var1=hello";

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream resStream = response.GetResponseStream();

【讨论】:

注意:这适用于 HTTP,我用 HTTPS url 测试了这段代码,但它不起作用。打算试试 WebClient 看看它是否适用于 SSL 使用本页地址。 *** 在 https 上运行,您将收到 200 OK 响应 string url = "https://***.com/questions/...";。成功了! 请注意,WebRequest 和 HttpWebRequest 不再推荐用于新项目。 Microsoft 建议改用较新的 HttpClient 类:docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclient【参考方案2】:

我更喜欢使用WebClient,它似乎可以透明地处理SSL:

http://msdn.microsoft.com/en-us/library/system.net.webclient.aspx

这里有一些故障排除帮助:

https://clipperhouse.com/webclient-fiddler-and-ssl/

【讨论】:

发布实际代码,链接可能会过时。【参考方案3】:

使用 HttpClient 类的简单获取请求

using System.Net.Http;

class Program

   static void Main(string[] args)
    
        HttpClient httpClient = new HttpClient();
        var result = httpClient.GetAsync("https://www.google.com").Result;
    


【讨论】:

这是http调用还是https调用? 这将导致异常说 SLS/TLS 问题。

以上是关于如何在 C# 中发送 HTTPS GET 请求的主要内容,如果未能解决你的问题,请参考以下文章

在c#用httpwebrequest中发送get/http/https请求后,怎么获得数据

如何在 Python 中发送 HTTP Get Web 请求? [复制]

C# HttpWebRequest GET HTTP HTTPS 请求

如何通过php发送https Get请求

如何在 Visual C# 中发送 HTTP 2.0 请求

如何在 jQuery ajax 中使用 GET 请求发送原始数据?