/ / Java client avec Apache HttpClient pour se connecter à Druid - java, apache, http, druid

Client Java avec Apache HttpClient pour se connecter à Druid - java, apache, http, druid

Je travaille sur l'acquisition et l'interrogation de données sur Druid Server. Mais, quand j’interroge, j’utilise la ligne de commande comme ci-dessous:

curl -X "POST" -H "Content-Type:application/json" -d @quickstart/ingest_statistic_hourly_generate.json localhost:8090/druid/indexer/v1/task

Quelqu'un peut-il me dire comment utiliser le client Java avec Apache HttpClient pour envoyer cette requête au serveur Druid afin d'obtenir une réponse. Merci beaucoup.

Réponses:

2 pour la réponse № 1

Je n'ai pas testé cela, mais cela devrait vous donner une bonne idée de le faire.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.nio.file.Files;
import java.nio.file.Paths;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClientBuilder;

public class HTTPTestClient {

public static void main(String[] args) throws Exception {
String url = "http://localhost:8090/druid/indexer/v1/task";
String content = new String(Files.readAllBytes(Paths.get("quickstart/ingest_statistic_hourly_generate.json")));

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

HttpPost post = new HttpPost(url);

post.addHeader("Accept", "application/json");
post.addHeader("charset", "utf-8");
post.addHeader("Content-Type", "application/json");
post.setEntity(new StringEntity(content));

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

BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

StringBuffer result = new StringBuffer();
String line = "";
while ((line = rd.readLine()) != null) {
result.append(line);
}
System.out.println(result);

}
}