2013-05-30 56 views
4

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

回答

2

您应该使用Fiddler来捕获您想要模拟的请求。 你需要看看检查员>原始。 这是铬

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 

的提琴手站点的请求的例子然后,您可以设置在这些的WebRequest标题的每一个(见http://msdn.microsoft.com/en-us/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"; 
+0

https://stackoverflow.com/a/44076963/3079364这是如何将UserAgent标头添加到.net – user3079364

0

所有这些信息都通过Web请求中的标头发送。您还可以在标题中添加此类信息作为键/值对。但是,您只有有限的属性,可以使用WebRequest的标题属性进行设置;其中许多是受限制的。您还可以检查以下线程中受限标题属性的列表:Cannot set some HTTP headers when using System.Net.WebRequest