De ce primesc DefaultHttpClient este depreciat? (Programare, Java, Httpclient)

john a intrebat.

Lucrez la un proiect în care trebuie să fac un apel la serviciul meu și serviciul meu va returna datele în format JSON. Și nu am nevoie să serializez acest răspuns JSON în vreun POJO, trebuie doar să primesc datele înapoi sub formă de String. Iar această aplicație este foarte critică din punct de vedere al performanței, așa că HttpClient trebuie să fie destul de rapidă

Așa că am decis să folosesc Apache HttpClient sau există vreo alternativă mai bună pe care o pot folosi?

DefaultHttpClient httpclient = new DefaultHttpClient();
HttpUriRequest request = new HttpGet("some-url");
request.addHeader("Context", "some-value");
HttpResponse response = httpClient.execute(request);
String response =  IOUtils.toString(response.getEntity().getContent(), "UTF-8");

Dar se plânge că The type DefaultHttpClient is deprecated așa că poate au o nouă versiune de HttpClient sau un alt mod de a face un apel HttpClient la un URL?

Există ceva ce îmi scapă?

Comentarii

2 răspunsuri
arsenal

Utilizați acest lucru:

HttpClient httpclient = HttpClientBuilder.create().build();

Consultați acest post stackoverflow

Red Boy

De la Apache HTTP Client API versiunea 4.3 încoace, DefaultHttpClient este depreciat.

Utilizați următoarea dependență maven ca exemplu.

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.1</version>
</dependency>

Următorul import.

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGett;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.client.methods.HttpUriRequest;

Următorul bloc de cod.

HttpClient client = HttpClientBuilder.create().build();
HttpUriRequest httpUriRequest = new 
HttpGet("http://example.domain/someuri");

HttpResponse response = client.execute(httpUriRequest);
System.out.println("Response:"+response);