2012-03-06 100 views
2

我發現的所有內容都是關於POST請求或不承擔cookie。如何使用C#中的cookie執行簡單的GET請求#

我有一個這樣的URL:

http://page.com/find/1,1,1,find.html?advanced=1&param1=val1&param2[]=val2 

當放入瀏覽器,這將直接我的搜索結果頁面。現在我想在C#程序中複製它。我有這個到目前爲止:

WebRequest req = WebRequest.Create(url); 
((HttpWebRequest)req).UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2"; 
req.Method = "GET"; 
WebResponse response = req.GetResponse(); 

當我運行它,它會返回一個「請登錄」頁面,如預期。但是其中一個參數有問題。這是響應網址:

http://page.com/login.html?ref=find/1,1,1,find.html?advanced=1&param1=val1&param2=Array 

於是,兩個問題:到底發生了什麼,以PARAM2?我該如何添加cookies?

編輯:管理設置cookie通過鑄造到HttpWebRequest

回答

1

由於devio說你應該使用HttpWebRequest。我做了骯髒的測試來檢查它。

準備Cookie發送。我提供了整個本地主機:

HttpWebRequest rq = (HttpWebRequest)WebRequest.Create("http://localhost/test.php"); 
rq.CookieContainer = new CookieContainer(); 
rq.CookieContainer.Add(new Cookie("test", "xxxx", "/", "localhost")); 

您的腳本應該設置cookie以使它們可用作爲響應。你可以使用它們。

HttpWebResponse resp = (HttpWebResponse)rq.GetResponse(); 
foreach(var c in resp.Cookies) 
{ 
    Debug("{0}: {1}", c.Name, c.Value); 
} 
相關問題