Arrays HttpWebRequest的HttpWebResponse的字节数组的字符数组返回;System.Net.HttpWebRequest“;
我正在尝试使用WebRequest.GetResponse()请求网页;并将该响应转换为字符数组,这样我就可以对数组进行排序并获得页面上的任何HREF标记。问题是,在我的代码中的某个地方,响应变成了“System.Net.HttpWebRequest”,而不是应该从页面检索的HTML 获取字符数组的代码:Arrays HttpWebRequest的HttpWebResponse的字节数组的字符数组返回;System.Net.HttpWebRequest“;,arrays,httpwebrequest,httpwebresponse,Arrays,Httpwebrequest,Httpwebresponse,我正在尝试使用WebRequest.GetResponse()请求网页;并将该响应转换为字符数组,这样我就可以对数组进行排序并获得页面上的任何HREF标记。问题是,在我的代码中的某个地方,响应变成了“System.Net.HttpWebRequest”,而不是应该从页面检索的HTML 获取字符数组的代码: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlTextBox.Text); request
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlTextBox.Text);
request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.44 Safari/534.7";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
bytearray = encoding.GetBytes(Convert.ToString(response));
chararray = encoding.GetChars(bytearray);
用于搜索链接的代码(注释用于疑难解答):
for(int i=0;i
如果我遗漏了什么,或者需要更多信息,请告诉我。响应是您必须首先从中读取的流
HttpWebRequest request = WebRequest.Create(urlTextBox.Text) as HttpWebRequest;
if (request != null)
{
request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.44 Safari/534.7";
using (HttpWebRepsonse response = request.GetResponse() as HttpWebResponse)
using (StreamReader rdr = new StreamReader(response.GetResponseStream())
{
string result = rdr.ReadToEnd();
}
}
你能再具体一点吗?例如,如何从响应中读取流?我是否需要将响应声明为webrequest之外的内容?Joel已经给出了代码。然而,如果我是你,我只会使用WebClient类。使用适合您的DownloadData()重载。@feroze webclient并没有使设置UserAgent变得那么容易,他似乎需要这样做。谢谢,代码工作正常。我之所以要举这个例子,是因为我问的时候,答案里没有。
HttpWebRequest request = WebRequest.Create(urlTextBox.Text) as HttpWebRequest;
if (request != null)
{
request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.44 Safari/534.7";
using (HttpWebRepsonse response = request.GetResponse() as HttpWebResponse)
using (StreamReader rdr = new StreamReader(response.GetResponseStream())
{
string result = rdr.ReadToEnd();
}
}