HttpWebRequest有空响应请求从Bing搜索

时间:2010-04-07 11:56:54

标签: c# httpwebrequest bing

我有以下代码将HttpWebRequest发送给Bing。当我请求下面的url时虽然它返回了一个空的响应,但它应该返回一个结果列表。

var response = string.Empty;
var httpWebRequest = WebRequest.Create("http://www.bing.com/search?q=stackoverflow&count=100") as HttpWebRequest;

httpWebRequest.Method = WebRequestMethods.Http.Get;
httpWebRequest.Headers.Add("Accept-Language", "en-US");
httpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Win32)";
httpWebRequest.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate");

using (var httpWebResponse = httpWebRequest.GetResponse() as HttpWebResponse)
{
    Stream stream = null;
    using (stream = httpWebResponse.GetResponseStream())
    {
        if (httpWebResponse.ContentEncoding.ToLower().Contains("gzip"))
            stream = new GZipStream(stream, CompressionMode.Decompress);
        else if (httpWebResponse.ContentEncoding.ToLower().Contains("deflate"))
            stream = new DeflateStream(stream, CompressionMode.Decompress);

        var streamReader = new StreamReader(stream, Encoding.UTF8);
        response = streamReader.ReadToEnd();
    }
}

它非常标准的代码,用于请求和接收网页。有什么想法为什么响应是空的?提前谢谢。

编辑我在网址中留下了查询字符串参数。我还有& count = 100,我现在已经纠正了。它似乎适用于50及以下的值,但更大时不返回任何值。这在浏览器中可以正常工作,但不适用于此Web请求。

这让我觉得问题是响应很大,而HttpWebResponse并没有像我设置的那样为我处理。只是一个猜测。

2 个答案:

答案 0 :(得分:1)

这在我的机器上工作得很好。也许你被Bing禁止知识产权?

答案 1 :(得分:1)

您的代码在我的计算机上正常运行。

我建议您自己获取Fiddler的副本并检查实际发生的HTTP会话。可能是代理或防火墙的事情。