C#とWebRequestクラスを使用してWebサイトにログインしようとしています。これは私がウェブページにPOSTデータを送信するために最後の夜までに書いたコードです:C#とWebRequestクラスでプログラムでWebサイトにログイン
public string login(string URL, string postData)
{
Stream webpageStream;
WebResponse webpageResponse;
StreamReader webpageReader;
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
_webRequest = WebRequest.Create(URL);
_webRequest.Method = "POST";
_webRequest.ContentType = "application/x-www-form-urlencoded";
_webRequest.ContentLength = byteArray.Length;
webpageStream = _webRequest.GetRequestStream();
webpageStream.Write(byteArray, 0, byteArray.Length);
webpageResponse = _webRequest.GetResponse();
webpageStream = webpageResponse.GetResponseStream();
webpageReader = new StreamReader(webpageStream);
string responseFromServer = webpageReader.ReadToEnd();
webpageReader.Close();
webpageStream.Close();
webpageResponse.Close();
return responseFromServer;
}
、それが正常に動作しますが、私はその後、ログインスクリプトにPOSTデータを送信するためにそれを変更してできるか見当がつかないクッキーを保存し、ログイン、私はウェブサイト上でのFirebugを使って自分のネットワーク転送を見てきました
ページにログインし、それがこのようになりますURLにPOSTデータを送信している(?):。
accountName=myemail%40gmail.com&password=mypassword&persistLogin=on&app=com-sc2
として、私が知っている限り、私のC#アプリでこのウェブサイトで自分のアカウントを使用できるようにするためには、 Webサーバーが送信したすべての要求に対して使用しますか?これは正しいですか?または、クッキーを一切持たないでもらえますか?
ご協力いただきありがとうございます。 :)
ああ、へのクロスポストです。だから私がこの権利を読んでいるならば、(CookieContainerメソッドを使って)ログインメソッドにクッキーを取得するコードを追加し、ログインする必要があるページのリクエストごとに 'reqのようなものを使用します。 CookieContainer = Cookie; '?もしそうなら、それは実装するのに十分単純だと思われます。 – Wen