我想使用一个简单的HttpClient。
然而,它似乎无法访问sun.net.www.http.HttpClient
。
此外,com.ibm.ws.http.HTTPConnection
- 似乎更支持http服务器而不是客户端。为什么?因为当我创建一个HttpConnection实例时,它有一个我应该写的“getHttpResponse”。
无论如何使用IBM HttpConnection for HttpClient?
或者,我可以使用任何标准的httpClient代码吗?
很多人使用Apache's HTTPClient。
看看its tutorial的前几章,看看它是不是你要找的东西。
如果您正在使用已经内置到Java中的简单内容,您可以查看HttpURLConnection,您可以使用它来构建HTTP请求(example)。但是,如果您需要做的不仅仅是简单的HTTP请求,那么HTTPClient可能就是您的选择。
我强烈推荐Unirest:
Unirest.post("http://httpbin.org/post")
.queryString("name", "Mark")
.field("last", "Polo")
.asString()
试试jcabi-http,它充当JDK HttpURLConnection
或Apache HttpClient的包装器:
String body = new JdkRequest("http://www.example.com")
.uri().queryParam("id", "123").back()
.method(Request.GET)
.fetch()
.body();
查看此博客文章了解更多信息:http://www.yegor256.com/2014/04/11/jcabi-http-intro.html
使用google-http-java-client还有另一种选择。
该库提供了一个简单灵活的API以及一个可插入的方法来使用低级HTTP库,如java.net.HttpURLConnection或Apache HTTP Client。
用于将内容从InputStream发布到特定URL的示例代码:
HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
HttpRequestFactory requestFactory = HTTP_TRANSPORT.createRequestFactory();
InputStream is = ...;
URL url = new URL(...);
String contentType = ...;
HttpRequest httpRequest = requestFactory.buildPostRequest(
new GenericUrl(url), new InputStreamContent(contentType, is)
);
HttpResponse execute = httpRequest.execute();
你不需要第三方类,只需使用java自己的URL
和HttpURLConnection
类。
查看示例here。
尝试Apache's HTTPClient fluent API它是如此容易使用!
// Execute a GET with timeout settings and return response content as String.
Request.Get("http://somehost/")
.connectTimeout(1000)
.socketTimeout(1000)
.execute().returnContent().asString();