java httpclientを使用したエラー org.apache.http.client.ClientProtocolException
以下は、httpclient を使って書いたメソッドです。
public static void GetFromServer(String url)
{ <未定義
<スパン
HttpClient client = new DefaultHttpClient()。
HttpGet get = new HttpGet(url)。
トライ {
<未定義
HttpResponse response = client.execute(get)。
HttpEntity entity = response.getEntity()。
retStr = EntityUtils.toString(entity)。
} catch (ClientProtocolException e) {.
<未定義
// TODO 自動生成されたキャッチブロック
e.printStackTrace()を実行します。
System.out.println(url)を実行します。
return ""。
} catch (IOException e) {.
<未定義
// TODO 自動生成されたキャッチブロック
e.printStackTrace()を実行します。
<スパン
return ""。
}
return retStr;
}
urlが通常のパスの場合、このコードは問題なく、retStrは正しいurlの戻り値を取得します。しかし、urlがプロキシ経由でアクセスされたり、登録を通してアクセスされる必要がある場合、例えばurlは、retStrの戻り値を取得します。
http://list.tmall.com/search_product.htm?spm=a220m.1000858.0.0.pCYtHr&cat=51260020&s=119&sort=s&style=g&search _condition=48&from=sn_1_cat&active=1&new=1&shopType=any&industryCatId=51260020&type=pc#J_Filter
上記のurlをパラメータとして使用すると、以下のエラーが発生します。
org.apache.http.client.ClientProtocolException
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:909)at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
<スパン . . . . .
<スパン
. . . . .
at org.apache.http.impl.client.DefaultRequestDirector.announceRoute(DefaultRequestDirector.java:842)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:645)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:480)
<スパン at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
回避策 ClientConnectionManager を httpclient に追加します。
public static void GetFromServer(String url)
{ <未定義
<スパン
ClientConnectionManager connManager = new PoolingClientConnectionManager()。
DefaultHttpClient client = new DefaultHttpClient(connManager).DefaultHttpClient = new DefaultHttpClient(connManager);
<スパン
<スパン
HttpGet get = new HttpGet(url)。
<スパン
トライ {
<未定義
<スパン
HttpResponse response = client.execute(get)。
<スパン
HttpEntity entity = response.getEntity()。
<スパン
retStr = EntityUtils.toString(entity)。
<スパン
} catch (ClientProtocolException e) {.
<未定義
<スパン
// TODO 自動生成されたキャッチブロック
<スパン
e.printStackTrace()を実行します。
<スパン
System.out.println(url)。
<スパン
return ""。
<スパン
} catch (IOException e) {.
<未定義
<スパン
// TODO 自動生成されたキャッチブロック
<スパン
e.printStackTrace()を実行します。
<スパン
return ""。
<スパン
}
<スパン
retStrを返します。
<スパン
}
関連
-
アクセス制限です。タイプ 'Application' は API ではありません。
-
Methodのinvokeメソッド実装のJavaリフレクション
-
Ali cloud ubuntu16 システムで LAMP を構築し、tomcat、jdk をインストールし、最初の javaweb プロジェクトを tomcat にデプロイする 詳細手順
-
Java面接のポイント3--例外処理(Exception Handling)
-
同期・並行クラスコンテナ
-
Tomcat 8は、「少なくとも1つのJARがTLDをスキャンされたが、TLDが含まれていない」問題を解決します。
-
比較方式がその一般契約に違反している。
-
InvalidDefinitionException: 構築できない(Creatorが存在しない)
-
SpringBootの除外自動設定
-
Maven の例外:アーティファクト xxxx:pom が見つかりませんでした。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
スレッド "main "での例外をEclipseで解決 java.lang.Error: 未解決のコンパイル問題、コンパイラとパッケージの不整合
-
xxx:jarのアーティファクトディスクリプタの読み込みに失敗した問題は解決しました。
-
宣言されたパッケージ XX は、期待されるパッケージ src.main.java.XX と一致しません。
-
mysqlへのJava接続に失敗するPathがどのトラストアンカーにもチェーンされていない
-
javaException: 比較メソッドが一般契約に違反しています!
-
eclipse 統合 aptana プラグイン
-
ファイルアップロードの例(amazon s3サーバーへ)
-
CentOS 7 javac実行時に「コマンドが見つかりません。
-
航空機戦争ゲームのJava実装 (ソースコード+コメント)
-
ideaがサービスを起動すると、レポートが表示されます。コマンドラインが長すぎるエラー