如何在 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 请求? [复制]