我在WPF项目中使用C#。我想向网站发送GET
http请求,但我希望以某种方式发送它,以便它看起来像是来自浏览器的请求。
现在我有一个程序发送GET
请求并获得响应。我使用WebRequest
课程发送GET
个请求
我知道浏览器会在浏览器名称,操作系统名称和计算机名称等请求中添加一些信息
我的问题是如何将此信息添加到WebRequest
?要分配哪些属性(浏览器名称,操作系统名称)?
答案 0 :(得分:3)
您应该使用Fiddler来捕获要模拟的请求。 您需要查看检查员>生的。 这是从chrome
向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
然后,您可以在网络请求中设置这些标头中的每一个(请参阅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";
答案 1 :(得分:1)
通常,您感兴趣的信息(浏览器,操作系统等)将与“请求”一起在“用户代理”标头中发送。您可以使用其属性控制用户代理:
http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.useragent.aspx
可能存在其他差异,我建议使用Fiddler来捕获您的浏览器流量,然后将其与基于.NET的Web请求的流量进行比较。
享受。
答案 2 :(得分:0)
所有此类信息都通过Web请求中的标头发送。您还可以在标题中添加此类信息作为键/值对。但是,您只能使用WebRequest的header属性设置有限的属性;其中许多是受限制的。您还可以在以下线程中检查受限标头属性列表:Cannot set some HTTP headers when using System.Net.WebRequest。