我有以下代碼發送一個HttpWebRequest到必應。當我請求下面的url時,雖然它返回的結果應該是返回結果列表時看起來是空的響應。HttpWebRequest有空響應請求從Bing搜索
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();
}
}
它用於請求和接收網頁的相當標準的代碼。任何想法爲什麼響應是空的?提前致謝。
編輯我離開了url中的查詢字符串參數。我也有& count = 100,現在我已經糾正了。它似乎適用於50以下的值,但在更大時不返回任何值。這可以在瀏覽器中正常工作,但不適用於此Web請求。
它讓我覺得問題是響應很大,HttpWebResponse沒有像我那樣處理這個問題。只是一個猜測。
謝謝Jan.我可以使用瀏覽器搜索bing,所以我沒有被禁止。 – 2010-04-07 12:14:04
With&count = 100,我的瀏覽器和應用程序中都沒有顯示結果。所以有這個問題。試試這個庫:http://thibautvs.com/blog/?p=643 – 2010-04-07 12:23:24