Подтвердить что ты не робот

HttpClient в java

Я хочу использовать простой HttpClient.

Однако, похоже, sun.net.www.http.HttpClient недоступен.

Кроме того, com.ibm.ws.http.HTTPConnection - похоже, больше поддерживает HTTP-сервер, а не клиент. Зачем? потому что, когда я создаю экземпляр HttpConnection, он имеет "getHttpResponse", к которому я должен писать.

В любом случае использовать IBM HttpConnection для HttpClient?

Или, есть ли какой-либо стандартный код httpClient, который я могу использовать?

Спасибо.

4b9b3361

Ответ 1

Многие люди используют Apache HTTPClient.

Взгляните на первые несколько глав его учебник, чтобы узнать, что вы ищете.

Если вы после чего-то простого, уже встроенного в Java, вы можете посмотреть HttpURLConnection, который вы можете использовать для сборки HTTP-запросы (пример). Если вам нужно сделать что-то большее, чем просто простые HTTP-запросы, HTTPClient - это, вероятно, путь.

Ответ 2

Я настоятельно рекомендую Unirest:

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

Ответ 3

Попробуйте 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

Ответ 4

Существует еще один вариант использования 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();

Ответ 5

Вам не нужен сторонний класс, просто используйте классы URL и HttpURLConnection java.
См. Пример здесь.