【发布时间】:2012-08-14 15:54:45
【问题描述】:
我不熟悉 .net 的整个 Web 端,但遇到了一个小问题。
我正在尝试执行如下的 HttpWebRequest:
String uri = "https://skyid.sky.com/signup/";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)";
request.Method = "GET";
request.GetResponse();
uri 指向 HTTPS 站点的位置。但是一旦我在 Fiddler 中看到这个,它就删除了我的 UserAgent,只显示 Host and Connection: Keep-Alive。
CONNECT skyid.sky.com:443 HTTP/1.1
Host: skyid.sky.com
Connection: Keep-Alive
这对于 HTTPS 是正常的还是我只是遗漏了什么?也许我什至在 Fiddler 中遗漏了一些它没有向我展示的东西。
任何帮助将不胜感激,谢谢大家!
【问题讨论】:
-
如果我运行它(当然是
uri的值),我会在 fiddler 中看到带有 HTTP 和 HTTPS 的用户代理。您可能已经在此处为您的示例删减了一些内容,因为发布空内容是不寻常的。在设置标题后,您能否删掉一些覆盖标题集合的内容? -
@JonHanna,对不起,我实际上是在做一个 GET,我已经在上面的代码中更改了它并添加了更多细节。所以我猜它的提琴手,如果你能看到 UserAgent。
-
您正在通过 HTTPS (443) 进行连接,因此您在这里看到的只是 CONNECT HTTP 动词(用于启动 HTTPS 连接)。实际请求的 GET 将在发送到服务器时被加密。为了在 Fiddler 中看到它,有一个高级选项可以帮助您解密加密连接以查看实际请求。
-
啊,是的。 @DanielJoseph 可以拥有它。 A 假设您已将 fiddler 选项设置为中间人的 HTTPS,因此您可以看到 CONNECT 和 GET,但如果您不这样做,那么您将看不到它(HTTPS 的重点是停止毕竟是人们看到的东西)。
标签: c# post httpwebrequest