0

と を使用HttpClientGetMethodて、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) 2 番目の URL の応答であり、最終的に返されます。

その理由はおそらく、最初の URL がリクエスト時に提供していないある種の Cookie を必要とするためです。そのようにリクエストを行ったときに何が起こるかを正確に判断する最善の方法は、WireSharkFiddlerなどのツールを使用して、HttpClient からの HTTP リクエスト/レスポンス シーケンスと、FireFox または IE を使用して作成された通常のリクエストのシーケンスを分析し、何が起こるかを確認することです。正確には違います。

于 2010-01-23T16:29:56.597 に答える