web-dev-qa-db-fra.com

HttpClient en Java

Je veux utiliser un simple HttpClient.

Cependant, il semble que Sun.net.www.http.HttpClient est inaccessible.

En outre, com.ibm.ws.http.HTTPConnection - semble prendre davantage en charge le serveur http et non le client. Pourquoi? parce que lorsque je crée une instance de HttpConnection, elle a un "getHttpResponse" dans lequel je suis censé écrire.

Quoi qu'il en soit d'utiliser IBM HttpConnection for HttpClient?

Ou, existe-t-il un code httpClient standard que je puisse utiliser?

Je vous remercie.

22
computeAlot

Beaucoup de gens utilisent HTTPClient d'Apache .

Jetez un œil aux premiers chapitres de son tutoriel pour voir si c'est ce que vous cherchez.

Si vous recherchez une solution simple déjà intégrée à Java, vous pouvez consulter HttpURLConnection , que vous pouvez utiliser pour créer des requêtes HTTP ( exemple ). Si vous devez faire autre chose que de simples requêtes HTTP, HTTPClient est probablement la solution.

18
Rob Hruska

Je recommande fortement Unirest :

Unirest.post("http://httpbin.org/post")
  .queryString("name", "Mark")
  .field("last", "Polo")
  .asString()
17
Paweł Krupiński

Essayez jcabi-http , qui agit comme un wrapper de JDK HttpURLConnection ou Apache HttpClient:

String body = new JdkRequest("http://www.example.com")
  .uri().queryParam("id", "123").back()
  .method(Request.GET)
  .fetch()
  .body();

Consultez ce billet de blog pour plus d'informations: http://www.yegor256.com/2014/04/11/jcabi-http-intro.html

7
yegor256

Une autre option consiste à utiliser google-http-Java-client

Cette bibliothèque fournit une API simple et flexible ainsi qu'une approche connectable permettant d'utiliser des bibliothèques HTTP de bas niveau telles que Java.net.HttpURLConnection ou Apache HTTP Client.

Exemple de code permettant de publier du contenu au contenu d'un InputStream vers une URL spécifique:

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();
3
Hachmaninow

Vous n'avez pas besoin d'une classe tierce, utilisez simplement les classes URL et HttpURLConnection de Java.
Voir un exemple ici

2
Amit G

Essayez API HTTPClient couramment utilisée par Apache son utilisation est si simple!

// Execute a GET with timeout settings and return response content as String.
Request.Get("http://somehost/")
    .connectTimeout(1000)
    .socketTimeout(1000)
    .execute().returnContent().asString();
2
Nikita Koksharov