我正在尝试将Http upload转换为使用新的HttpClient 4.3.1类。我是Java新手。我在网上找到的所有东西都使用废弃的类(例如,HttpClient client =新的DefaultHttpClient()或更旧的方法来创建HttpClient的实例。请原谅下面的所有额外的库,我的项目的其余部分将需要一些库。
我尝试了无数种不同的方法来创建实例,下面是我在4.3.1版本的org.appache文档中看到的方法。
不幸的是,我收到一个错误,表明HttpClientBuilder不可见。我甚至不确定是否导入了不可见的means...the库。有谁能告诉我创建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();
}发布于 2013-11-07 19:40:09
构造函数HttpClientBuilder()是受保护的(不是公共的),所以您不能从代码中调用它。这就是不可见的意思。
您可以使用静态构造函数方法调用构建器,如下所示:
HttpClientBuilder.create();或者,快速创建一个客户端(这是重点)
HttpClient client = HttpClientBuilder.create()
.setUserAgent("MyAgent")
.setMaxConnPerRoute(4)
.build()发布于 2013-11-07 19:39:55
您需要使用HttpClients中的静态工厂方法。
您可以使用它们来获取预配置的HttpClient实例,或者使用HttpClients.custom()通过HttpClientBuilder应用您的自定义配置。
https://stackoverflow.com/questions/19834801
复制相似问题