3

新しい HttpClient 4.3.1 クラスを使用するように Http アップロードを変換しようとしています。私はJavaが初めてです。私がオンラインで見つけたものはすべて、非推奨のクラス (つまり、HttpClient client = new DefaultHttpClient() または HttpClient のインスタンスを作成するためのさらに古いメソッド) を使用しています。以下のすべての余分なライブラリを許してください。私のプロジェクトの残りの部分で必要になるものもあります。

インスタンスを作成するためにさまざまな方法を試しました。以下に示すのは、4.3.1 の org.appache ドキュメントで使用されている方法です。
残念ながら、HttpClientBuilder が表示されないというエラーが表示されます。表示されないということは何を意味するのかさえわかりません...ライブラリがインポートされました。誰でも HttpClient インスタンスを作成するための正しい方向に私を向けることができますか?

 package newHttpApiUpload;

 import org.apache.http.client.HttpClient;
 import org.apache.http.HttpConnection;  
 import org.apache.http.conn.HttpClientConnectionManager;
 import org.apache.http.impl.client.HttpClientBuilder;
 import org.apache.http.impl.client.HttpClients;
 import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;  
 import org.apache.http.client.config.RequestConfig; 
 import org.apache.http.auth.AuthScope;
 import org.apache.http.auth.UsernamePasswordCredentials;
 import org.apache.http.client.methods.HttpPost;
 import org.apache.http.entity.AbstractHttpEntity; 

 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;

 public class Api {

     protected static final HttpClientBuilder client = new HttpClientBuilder();

 }
4

2 に答える 2

4

コンストラクターHttpClientBuilder()は保護されている (公開されていない) ため、コードから呼び出すことはできません。それが目に見えないということです。

次のように、静的コンストラクター メソッドを使用してビルダーを呼び出します。

HttpClientBuilder.create();

または、クライアントをすばやく作成するには(これが重要です)

HttpClient client = HttpClientBuilder.create()
  .setUserAgent("MyAgent")
  .setMaxConnPerRoute(4)
  .build()
于 2013-11-07T11:40:09.053 に答える
3

の静的ファクトリ メソッドを使用する必要がありますHttpClients

これらを使用して、事前設定された のインスタンスを取得しHttpClientたり、 を使用HttpClients.custom()してカスタム設定を適用したりできますHttpClientBuilder

于 2013-11-07T11:39:54.973 に答える