HttpWebRequest不发送UserAgent

时间:2012-08-14 15:54:45

标签: c# post httpwebrequest

我很擅长查看.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和Connection:Keep-Alive。

CONNECT skyid.sky.com:443 HTTP/1.1
Host: skyid.sky.com
Connection: Keep-Alive

这是正常的HTTPS还是我只是遗漏了什么?也许我甚至错过了Fiddler的一些东西,它没有向我展示这一点。

任何帮助将不胜感激,谢谢大家!

1 个答案:

答案 0 :(得分:7)

我认为你没有看到正确的Fiddler系列。您显示的是CONNECT动词,而不是GET。应使用UserAgent属性正确设置request.UserAgent。调试请求的另一种方法是在您的应用程序级别configure network tracing,我个人比较喜欢Fiddler:

<configuration>
    <system.diagnostics>
        <sources>
            <source name="System.Net" tracemode="protocolonly" maxdatasize="1024">
                <listeners>
                    <add name="System.Net"/>
                </listeners>
            </source>
        </sources>
        <switches>
            <add name="System.Net" value="Verbose"/>
        </switches>
        <sharedListeners>
            <add 
                name="System.Net"
                type="System.Diagnostics.TextWriterTraceListener"
                initializeData="network.log"
            />
        </sharedListeners>
        <trace autoflush="true"/>
    </system.diagnostics>
</configuration>