2012-03-06 1 views
2

私が見つけたものは、POSTリクエストかクッキーを想定していません。C#でクッキーを使って簡単な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 

、二つの質問:これは、応答URLですPARAM2に起こっているかもしれないもの?そして、これにクッキーを追加するにはどうしたらいいですか?

EDIT:にキャストしてクッキーを設定することができます。

答えて

1

devioは、HttpWebRequestを使用する必要があります。私はそれを確認するために汚いテストをしました。

送信するCookieを準備します。私はlocalhost全体で利用できるようにしました:

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

あなたのスクリプトは、それを応答可能にするためにクッキーを設定する必要があります。そしてあなたはそれらを使うことができます。

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