C# 使用HTTP WEB请求从URL读取响应

C# 使用HTTP WEB请求从URL读取响应,c#,C#,我必须从中读取响应。我使用了以下代码,但没有得到所有响应。相反,它给出了错误页面的响应,提前表示感谢 protected void Page_Load(object sender, EventArgs e) { string sUrl = "http://www.subway.com/storelocator/default.aspx?zip=04416&country=USA"; XmlDocument rssDoc = new XmlDocument();

我必须从中读取响应。我使用了以下代码,但没有得到所有响应。相反,它给出了错误页面的响应,提前表示感谢

protected void Page_Load(object sender, EventArgs e)
{

    string sUrl = "http://www.subway.com/storelocator/default.aspx?zip=04416&country=USA";
    XmlDocument rssDoc = new XmlDocument();
    XmlTextReader rssReader = new XmlTextReader(sUrl.ToString());

    WebRequest wrGETURL;
    wrGETURL = WebRequest.Create(sUrl);

    Stream objStream;
    objStream = wrGETURL.GetResponse().GetResponseStream();
    StreamReader objReader = new StreamReader(objStream, Encoding.UTF8);
    WebResponse wr = wrGETURL.GetResponse();
    Stream receiveStream = wr.GetResponseStream();
    StreamReader reader = new StreamReader(receiveStream, Encoding.UTF8);
    string content = reader.ReadToEnd();
    Response.Write(content);
   }

我不知道您想用
XmlTextReader
做什么,因为返回的内容是
html
而不是
xml
,但是设置UserAgent就足以获取页面

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://www.subway.com/storelocator/default.aspx?zip=04416&country=USA");
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)";
using (var resp = req.GetResponse())
{
    var html = new StreamReader(resp.GetResponseStream()).ReadToEnd();
}

在一行代码中,使用更简单的vb.net(与c#具有相同的性能)


您想立即从该url发送webrequest??好的,您必须调用wrGETURL.GetResponse()在使用ResponseEyes中的任何内容之前,它现在正在工作,但如果我需要获取此url的响应,它不会向所有商店提供我从subway获取所有商店所需的操作,如果我们指定英里数distance@Janhavi你的问题是
我必须阅读..
的回复,你明白了。你应该知道为什么你的url没有提供你想要的数据。
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://www.subway.com/storelocator/default.aspx?zip=04416&country=USA");
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)";
using (var resp = req.GetResponse())
{
    var html = new StreamReader(resp.GetResponseStream()).ReadToEnd();
}
Return New System.IO.StreamReader(System.Net.HttpWebRequest.Create("http://urltogetthecontents.com").GetResponse().GetResponseStream()).ReadToEnd()