2013-05-30 51 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