StreamReader无法正常工作

时间:2012-09-01 22:00:39

标签: c# winforms

有些机构可以解释一下会发生什么吗?

我使用这个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;

出了什么问题?

3 个答案:

答案 0 :(得分:4)

在收到回复之前添加以下内容:

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

您的代码是正确的,但似乎网络服务器对请求标头中未指定User-Agent字段的请求返回空响应。

答案 1 :(得分:2)

我刚检查过,你的代码返回一个myhttpWebResponse,状态=“OK”,ContentLenght = 0,所以一切都很好 - 它只是服务器返回无数据。问题是,为什么。也许你没有添加一些它们所需的标题?

我刚试过设置:

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;

,该页面似乎正确下载。 BTW。为什么不使用WebClient课呢?在会话和重定向的情况下,您遇到的问题会更少。

答案 2 :(得分: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());