2012-04-02 13 views
2

Webページから少数の情報を簡単に抽出するためのJavaプログラムを使用して、Webページのモバイル版をロードしようとしています。 FirefoxのでJavaプログラムからモバイルWebブラウザをシミュレートする

は、ユーザエージェントスイッチャープラグインを追加した後、私はこの後

"Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE71-1/110.07.127; Profile/MIDP-2.0 Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413" 

値を持つ新しいユーザーエージェントを追加した私はhttp://www.bbc.co.uk/をロードしようとした場合、Webページのモバイル版です正常にロードされました。

しかし、私は、下記のようUser-Agentを設定することにより、ApacheのHTTPClientのライブラリを使用してJavaプログラムで同じことをしようとしています:

HttpClient httpclient = new DefaultHttpClient(); 

HttpProtocolParams.setUserAgent(httpclient.getParams(), 
    "Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE71-1/110.07.127; Profile/MIDP-2.0 Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413"); 

しかし、私は同じリンクのモバイル版を取得しておりません。

ここで自動的にリダイレクトが行われ、ユーザーエージェントが変更されたときにモバイル版のページが表示されることを願っています。

この問題を解決するのに手伝ってもらえますか?

+0

で提案された解決策を試すことができますロギング(http://hc.apache.org/httpcomponents-client-ga/logging.html)と投稿rエスコート。 – fglez

+0

これで問題は、応答のWebページをリダイレクトするwindow.locationを設定するサイトにあることがわかりました。何とかApache HTTPClient-4.1.3がリダイレクトHttpClientParams.setRedirectingを設定してもこのパラメータを自動的に処理していません(params、true); DefaultHttpClient httpclient = new DefaultHttpClient(params); –

答えて

1

HttpClientは、JavaScript redirectionをサポートしていません。

HttpClientはブラウザではありません。重要なことに、UI、キャッシュ、HTMLレンダラー、JavaScriptエンジンが欠けています。 HttpClientをのスコープの詳細についてはHttpClientをプライマーに

を参照してください。たぶん、あなたはHttpClientをを有効にこれらの質問

+0

ありがとう..私は今、HtmlUnitを使用し始め、それは完全にJavaスクリプトのリダイレクトを処理します.. –

0

HttpClientでフォローリダイレクトを設定しましたか?

+0

こんにちは、HttpClient 4.0のHttpGetメソッドでsetFollowRedirectsがサポートされていないため、パラメータ 'http.protocol.handle-redirects'を 'true'に設定しました。 –

関連する問題