HttpWebRequest 的 HttpWebResponse 的字节数组的字符数组返回“System.Net.HttpWebRequest”

发布于 2024-10-06 00:17:21 字数 1314 浏览 0 评论 0原文

我正在尝试使用 WebRequest.GetResponse(); 请求网页并将该响应转换为字符数组,这样我就可以对数组进行排序并获取页面上的任何 HREF 标记。问题是,在我的代码中的某个地方,响应变成了“System.Net.HttpWebRequest”,而不是应该从页面检索的 HTML。

获取 char 数组的代码:

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 < chararray.Length; i++)
{
    // Get all HREFs
    if (i < 500 & chararray[i] == 'h' & chararray[i + 1] == 'r' & chararray[i + 2] == 'e' & chararray[i + 3] == '=' & chararray[i + 4] == '"')
    {
        for (int tempi = 0; bytearray[i + 4 + tempi] != '"';)
        {
             tempstring = tempstring + chararray[i + 4 + tempi].ToString();
        }
        urlarray[urlarray.Length + 1] = tempstring;
        i = i + 4;
    }
}
scrapeLink1.Text = urlarray[1];

如果我错过了某些内容,或者需要更多信息,请告诉我。

I'm trying to request a webpage using WebRequest.GetResponse(); and convert that response to a chararray, so I can sort through the array and get any HREF tags that are on the page. The problem is, somewhere in my code the response turns into "System.Net.HttpWebRequest", instead of the HTML that should be retrieved from the page.

The code to get the char array:

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);

The code to search for links (commented for troubleshooting):

for (int i = 0; i < chararray.Length; i++)
{
    // Get all HREFs
    if (i < 500 & chararray[i] == 'h' & chararray[i + 1] == 'r' & chararray[i + 2] == 'e' & chararray[i + 3] == '=' & chararray[i + 4] == '"')
    {
        for (int tempi = 0; bytearray[i + 4 + tempi] != '"';)
        {
             tempstring = tempstring + chararray[i + 4 + tempi].ToString();
        }
        urlarray[urlarray.Length + 1] = tempstring;
        i = i + 4;
    }
}
scrapeLink1.Text = urlarray[1];

If I missed something, or more information is needed, let me know.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

澉约 2024-10-13 00:17:21

响应是您必须首先读取的

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();
    }
}

The response is stream that you must first read from.

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();
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文