如何从代码中模拟Web浏览器http请求?

use*_*241 7 c# wpf http

我在WPF项目中使用C#.我想向GET网站发送一个http请求,但我希望以某种方式发送它,以便它看起来像是来自浏览器的请求.
现在我有一个发送GET请求并获得响应的程序.我用WebRequestclass来发送GET请求.
我知道浏览器会在浏览器名称,操作系统名称和计算机名称等请求中添加一些信息.
我的问题是如何将此信息添加到我的WebRequest?要分配哪些属性(浏览器名称,操作系统名称)?

nic*_*ane 5

您应该使用Fiddler捕获要模拟的请求。您需要查看检查器>原始。这是chrome向提琴手网站的请求示例

GET http://fiddler2.com/ HTTP/1.1
Host: fiddler2.com
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36
Referer: https://www.google.be/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,nl;q=0.6
Run Code Online (Sandbox Code Playgroud)

然后,您可以在webrequest中设置这些标头中的每个标头(请参阅http://msdn.microsoft.com/zh-cn/library/system.net.httpwebrequest.aspx)。

WebRequest request = (HttpWebRequest)WebRequest.Create("http://www.test.com");      
request.UserAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36";
Run Code Online (Sandbox Code Playgroud)