0

我使用HttpClientandGetMethod来获取 URL 的页面源:

http://www.google.com/finance?chdnp=1&chdd=1&chds=1&chdv=1&chvs=Logarithmic&chdeh=0&chdet=1264263288788&chddm=391&chddi=120&chls=Ohlc&q=NSE:.NSEI&

但不知何故,我总是最终得到以下页面来源:

http://www.google.com/finance?q=NSE:.NSEI

谁能告诉我为什么以及如何获取前 URL 的页面源?

4

1 回答 1

1

我将在这里冒险并假设正在发生的事情是您的 HttpClient 实现在内部处理 HTTP 重定向,因此当您调用GetMethod第一个 URL 时,服务器 (google.com) 可能正在发回 HTTP 重定向(302 或 301)对第二个 URL 的响应,这是您最终得到的。

原因可能是第一个 URL 需要某种 cookie,而您在提出请求时并未提供这种 cookie。准确确定以这种方式发出请求时会发生什么的最佳方法是使用诸如WireSharkFiddler之类的工具来分析来自 HttpClient 的 HTTP 请求/响应序列以及使用 FireFox 或 IE 发出的正常请求的序列,然后查看完全不同。

于 2010-01-23T16:29:56.597 回答