java中的HttpClient [关闭]

问题描述 投票:22回答:6

我想使用一个简单的HttpClient。

然而,它似乎无法访问sun.net.www.http.HttpClient

此外,com.ibm.ws.http.HTTPConnection - 似乎更支持http服务器而不是客户端。为什么?因为当我创建一个HttpConnection实例时,它有一个我应该写的“getHttpResponse”。

无论如何使用IBM HttpConnection for HttpClient?

或者,我可以使用任何标准的httpClient代码吗?

java http httpclient
6个回答
18
投票

很多人使用Apache's HTTPClient

看看its tutorial的前几章,看看它是不是你要找的东西。

如果您正在使用已经内置到Java中的简单内容,您可以查看HttpURLConnection,您可以使用它来构建HTTP请求(example)。但是,如果您需要做的不仅仅是简单的HTTP请求,那么HTTPClient可能就是您的选择。


18
投票

我强烈推荐Unirest

Unirest.post("http://httpbin.org/post")
  .queryString("name", "Mark")
  .field("last", "Polo")
  .asString()

7
投票

试试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


3
投票

使用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();

2
投票

你不需要第三方类,只需使用java自己的URLHttpURLConnection类。 查看示例here


2
投票

尝试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();
© www.soinside.com 2019 - 2024. All rights reserved.