1

私は現在、特定の Web ページが表示する HTML 情報を使用できるプロジェクトに取り組んでいます。

HTML を取得しようとしている Web サイトにはログイン システムがあり、ページにログインする必要があるため、WebRequest だけを使用することはできません。

ただし、問題がある場合、私のページを使用しているユーザーはこのページにアクセスできる必要があります。彼は Cookie でログインしたことを覚えています。

つまり、サーバーが Cookie を保持して Web ページから読み取る方法が必要です。または、クライアント側で、彼がページに入ったときに表示される HTML コードを提供するようにする必要があります。

C# で ASP.NET を使用しています。

4

1 に答える 1

0

「Cookie を使用して webrequest を送信する方法」というコメントで回答しますが、コメントの書式設定機能が制限されているため、回答として投稿します。

  using System.IO;
  using System.Net;
  using System.Text;

  // ...

  var request = WebRequest.Create("http://localhost:54903/SimpleLogin.ashx") as HttpWebRequest;
  var container = new CookieContainer();
  request.CookieContainer = container;
  string postData = "username=user&password=pass";
  byte[] data = Encoding.ASCII.GetBytes(postData);
  request.Method = "POST";
  request.ContentType = "application/x-www-form-urlencoded";
  request.ContentLength = data.Length;
  using (var stream = request.GetRequestStream()) {
    stream.Write(data, 0, data.Length);
  }
  var response = (HttpWebResponse)request.GetResponse();

  request = WebRequest.Create("http://localhost:54903/Home.ashx") as HttpWebRequest;
  request.CookieContainer = container;
  request.Method = "GET";
  response = (HttpWebResponse)request.GetResponse();
  string authorizedGetString;
  using (var stream = response.GetResponseStream()) {
    using (var streamReader = new StreamReader(stream)) {
      authorizedGetString = streamReader.ReadToEnd();
    }
  }
于 2013-11-14T10:35:16.973 に答える