ホームページ >バックエンド開発 >C++ >C# を使用してプログラムで Web サイトにログインするにはどうすればよいですか?

C# を使用してプログラムで Web サイトにログインするにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-18 09:36:10375ブラウズ

C# を使用して Web サイトのログイン スクリプトを作成する

問題: 私の Web スクレイパーでは、Web サイト上の特定のソース コードにアクセスするにはログイン ユーザーが必要です。この制限を回避するには、プログラムにログイン機能を実装するにはどうすればよいですか?

答え: 指定された Web サイト (mmoinn.com/index.do?PageModule=UsersLogin) にログインするには、以下の手順に従います:

1. ログインフォームに POST リクエストを送信します

ログイン資格情報をフォーム POST にフォーマットします:

<code class="language-csharp">string formUrl = "http://www.mmoinn.com/index.do?PageModule=UsersAction&Action=UsersLogin";
string formParams = string.Format("email_address={0}&password={1}", "您的邮箱地址", "您的密码");

WebRequest req = WebRequest.Create(formUrl);
req.ContentType = "application/x-www-form-urlencoded";
req.Method = "POST";

byte[] bytes = Encoding.ASCII.GetBytes(formParams);
req.ContentLength = bytes.Length;

using (Stream os = req.GetRequestStream())
{
    os.Write(bytes, 0, bytes.Length);
}

WebResponse resp = req.GetResponse();
string cookieHeader = resp.Headers["Set-cookie"];</code>

2. ログインページを取得します

ログイン フォームから取得した Cookie ヘッダーを含む目的のページへの GET リクエストを作成します:

<code class="language-csharp">string getUrl = "登录后页面的URL";
WebRequest getRequest = WebRequest.Create(getUrl);
getRequest.Headers.Add("Cookie", cookieHeader);
WebResponse getResponse = getRequest.GetResponse();

using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
    string pageSource = sr.ReadToEnd();
}</code>

追加メモ:

ログイン POST の応答を確認したい場合は、次のコード行を追加できます。

<code class="language-csharp">using (StreamReader sr = new StreamReader(resp.GetResponseStream()))
{
    string pageSource = sr.ReadToEnd();
}</code>

pageSource 文字列を確認して、サーバーの応答を確認します。

How to Programmatically Log In to a Website Using C#?

以上がC# を使用してプログラムで Web サイトにログインするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。