CloseableHttpResponse
2022-03-02 10:50:55
最近では、Apacheのhttpclientを使用する場合、Mavenは、最新のバージョン4.3を参照して、プロンプトDefaultHttpClientと他の一般的なクラスがバージョン4.2.3を使用する前に、使用を推奨されていないアイデアを発見、非推奨されていない。 詳細はこちら .
- DefaultHttpClient -> CloseableHttpClient
- HttpResponse -> CloseableHttpResponse
新Apiの公式サンプルは以下の通りです。
Getメソッド。
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet("http://targethost/homepage");
CloseableHttpResponse response1 = httpclient.execute(httpGet);
// The underlying HTTP connection is still held by the response object
// to allow the response content to be streamed directly from the network socket.
// In order to ensure correct deallocation of system resources
// the user MUST either fully consume the response content or abort request
// execution by calling CloseableHttpResponse#close().
// the established http connection, still held by response1, allows us to fetch the returned data from the network socket
// To free up resources, we must manually consume response1 or cancel the connection (using the close method of the CloseableHttpResponse class)
try {
System.out.println(response1.getStatusLine());
HttpEntity1 entity = response1.getEntity();
// do something useful with the response body
// and ensure it is fully consumed
EntityUtils.consume(entity1);
} finally {
response1.close();
}
ポストメソッド。
HttpPost httpPost = new HttpPost("http://targethost/login");
//spliced parameters
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
nvps.add(new BasicNameValuePair("username", "vip"));
nvps.add(new BasicNameValuePair("password", "secret"));
httpPost.setEntity(new UrlEncodedFormEntity(nvps));
CloseableHttpResponse response2 = httpclient.execute(httpPost);
try {
System.out.println(response2.getStatusLine());
HttpEntity entity2 = response2.getEntity();
// do something useful with the response body
// and ensure it is fully consumed
// consume the response
EntityUtils.consume(entity2);
} finally {
response2.close();
}
HttpClientsのソースコードをさらに下に見ていくと、具体的な実装はすべて
HttpClientBuilder
は、その
build
というメソッドがあるので、興味のある方はapacheのソースコードを見てください。
/**
* Creates {@link CloseableHttpClient} instance with default
* configuration.
*/
public static CloseableHttpClient createDefault() {
return HttpClientBuilder.create().build();
}
開発環境です。Maven 3.3.9
IDEA 2016.2.1
- <スパン インポート net.sf.json.JSONArray;
- インポート net.sf.json.JSONObject;
- インポート org.apache.http.HttpEntity;
- インポート org.apache.http.HttpResponse;
- インポート org.apache.http.client.methods.HttpGet;
- インポート org.apache.http.impl.client.CloseableHttpClient.CloseableHttpClient.CloseableHttpClient.CloseableHttpClient.CloseableHttpClient を作成します。
- インポート org.apache.http.impl.client.HttpClientBuilder;
- インポート org.apache.http.util.EntityUtils;
- <スパン インポート java.io.IOException。
- インポート java.util.ArrayList。
- インポート java.util.List。
- <スパン /**
- <スパン * 2017/8/28にClearwater66によって作成されました。
- */
- 公開 クラス JsonGet {
- 公開 静的 ボイド main(String[]Args){。
- // HttpClientBuilderの作成
- HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
- //HttpClient
- CloseableHttpClient closeableHttpClient = httpClientBuilder.build()。
- HttpGet httpGet = 新しい HttpGet( "http://android.myapp.com/myapp/app/comment.htm?apkName=com.youcash.ZYWallet&apkCode=157&p=1&fresh= 0.02709822286851704&contextData=" );
- System.out.println(httpGet.getRequestLine());
- トライ {
- //getリクエストの実行
- HttpResponse httpResponse = closeableHttpClient.execute(httpGet).HttpResponse = closeableHttpClient.execute(httpGet);
- //応答メッセージの実体を取得する
- HttpEntity entity = httpResponse.getEntity()。
- //レスポンスステータス <スパン
- System.out.println( ステータス:" + httpResponse.getStatusLine())。
- // レスポンス・エンティティが空であるかどうかを判定します
- もし (エンティティ ! = ヌル ) {
- System.out.println( contentEncoding:" + entity.getContentEncoding());
- parseJsonGet(EntityUtils.toString(entity)) を実行します。
- }
- } キャッチ (IOExceptionのe) {。
- e.printStackTrace()を実行します。
- } 最後に {
- トライ { //ストリームを閉じ、リソースを解放する
- closeableHttpClient.close()を実行します。
- } キャッチ (IOExceptionのe) {。
- e.printStackTrace()を実行します。
- }
- }
- }
- // Jsonデータのパース
- 公開 静的 ボイド parseJsonGet(文字列jsonString){。
- JSONObject jsonObject = JSONObject.fromObject(jsonString);
- //AppCommentsData クラスは、コメントの著者、コメントの内容などを保持します。
- リスト<AppCommentsData> リスト =. 新規 ArrayList<AppCommentsData>();
- JSONObject obj= jsonObject.getJSONObject()です。 obj" );
- <スパン // 製品レビュー情報 <スパン
- JSONArray jsonArray = obj.getJSONArray() コメント詳細です。 );
- について ( int i = 0 ;i<jsonArray.size();i++){。
- AppCommentsData appCommentsData = 新規 AppCommentsData()。
- appCommentsData.setApp_id( 1 );
- appCommentsData.setStore_id( 1011 );
- //コメント作成者
- appCommentsData.setAuthor(jsonArray.getJSONObject(i).getString() ニックネーム" ));
- // 製品レビューコンテンツ
- appCommentsData.setData(jsonArray.getJSONObject(i).getString() コンテンツ" ));
- <スパン //評価
- appCommentsData.setScore(jsonArray.getJSONObject(i).getInt() スコア" ));
- list.add(appCommentsData)を実行します。
- }
- System.out.println( appCommentsData//"を出力します。 );
- について ( int i= 0 <スパン ;i<list.size();i++){。
- AppCommentsData appCommentsData = list.get(i);
- System.out.println( 名前:=" +appCommentsData.getAuthor())。
- System.out.println( "コンテンツ: =" +appCommentsData.getData())。
- System.out.println( "スコア: =" +appCommentsData.getScore())となります。
- }
- }
- }
- /**
- * 2017/8/22にClearwater66によって作成されました。
- */
- public class AppCommentsData {
- int idを指定します。
- int app_id;//アプリのID
- int store_id;// アプリストアID
- 文字列 author;//レビュアー
- int score;//score
- 文字列データ;//コメント内容
- //ゲッターメソッドとセッターメソッドを生成する
- }
2) ウェブでは、UTF-8をutf8mb4に変更することを提案していますが、これに関するいくつかの投稿を試しても成功しませんでした。
3) コメント内容から式を削除し、データベースに挿入してみた
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例