1

誰かが私に何が起こるか説明できますか?

このURLコードを使用すると、Label1ポストリモートページが私のページ内で機能します

string url = "http://ireland.angloinfo.com/";

しかし、これはLabel1が空ではありません

string url = "http://cyprus.angloinfo.com/";

string html = string.Empty;
HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
StreamReader myStreamReader = new StreamReader(myHttpWebResponse.GetResponseStream());
html = myStreamReader.ReadToEnd();

Label1.Text = html;

何が悪かったのか ?

4

3 に答える 3

4

応答を取得する前に、次を追加します。

    HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
    myHttpWebRequest.UserAgent = "Mozilla/5.0";

User-Agentあなたのコードは正しいですが、リクエストヘッダーにフィールドが指定されていないリクエストに対して、ウェブサーバーが空のレスポンスを返すようです。

于 2012-09-01T22:21:16.330 に答える
2

確認したところ、あなたのコードは Status = "OK" および ContentLenght = 0 の myhttpWebResponse を返すので、すべて問題ありませんでした。データがまったくないことを返したのはサーバーだけです。問題は、その理由です。必要なヘッダーを追加していない可能性がありますか?

私はちょうど設定で試しました:

string url = "http://cyprus.angloinfo.com/";

string html = string.Empty;
HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
myHttpWebRequest.UserAgent = "yummy";
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
StreamReader myStreamReader = new StreamReader(myHttpWebResponse.GetResponseStream());
html = myStreamReader.ReadToEnd();

Label1.Text = html;

ページは正しくダウンロードされているようです。ところで。WebClient代わりにクラスを使用してみませんか? セッションとリダイレクトの場合、問題は少なくなります..

于 2012-09-01T22:25:08.230 に答える
1

このコードはどうですか:

 List<string> lines = new List<string>();
 StreamReader reader = new StreamReader(WebRequest.Create("http://cyprus.angloinfo.com/").GetResponse().GetResponseStream());
  string line;
  while ((line = reader.ReadLine()) != null)
  {
      lines.Add(line);
  }
  label1.Text = String.Join(" ", lines.ToArray());
于 2012-09-01T22:15:56.350 に答える