2016-03-03 7 views
0

У меня есть запрос на завивание, который мне нужно вызвать из моего кода Java.curl request to java

curl -XGET 'abc.com:9200/datafinal/map/_search' -d ' 
{ 
    "query": { 
    "filtered": { 
     "query": { 
     "match": { "ORIG_PROVIDER_ID": 1 } 
     }, 
     "filter": { 
     "range": { "TRANSACT_DATE": { "gte": "2015-01-01 00:00:00.0" ,"lte": "2015-01-10 00:00:00.0"}} 
     } 
    } 
    }, 
    "aggs" : { 
     "amount_sum" : { "sum" : { "field" : "TOTAL_AMT" } } 
    } 
} 
' 

Это запрос на завивание. как я могу назвать это из java-кода? Чтобы сформировать этот точный код с httpurlconnection в java, это выглядит как сложная работа с телом запроса.

+0

Вы пытаетесь отправить тело запроса в GET-запрос? Возможно, это возможно, но, вероятно, неправильно. –

+0

Да, я пытаюсь отправить тело запроса в GET-запрос, То, как работает Elastic Search –

+0

Просто помогите мне сформировать правильный URL-адрес из этого завитка. Спасибо. –

ответ

0
import java.io.DataInputStream; 
import java.io.DataOutputStream; 
import java.io.IOException; 
import java.net.HttpURLConnection; 
import java.net.URL; 

public class CURLTest { 
    public void main(String[] args) throws IOException { 
     sendData(); 
    } 

public String sendData() throws IOException { 
    // curl_init and url 


    URL url = new URL("Put the Request here"); 
    HttpURLConnection con = (HttpURLConnection) url.openConnection(); 

    // CURLOPT_POST 
    con.setRequestMethod("POST"); 

    // CURLOPT_FOLLOWLOCATION 
    con.setInstanceFollowRedirects(true); 

    String postData = "my_data_for_posting"; 
    con.setRequestProperty("Content-length", 
      String.valueOf(postData.length())); 

    con.setDoOutput(true); 
    con.setDoInput(true); 

    DataOutputStream output = new DataOutputStream(con.getOutputStream()); 
    output.writeBytes(postData); 
    output.close(); 

    // "Post data send ... waiting for reply"); 
    int code = con.getResponseCode(); // 200 = HTTP_OK 
    System.out.println("Response (Code):" + code); 
    System.out.println("Response (Message):" + con.getResponseMessage()); 

    // read the response 
    DataInputStream input = new DataInputStream(con.getInputStream()); 
    int c; 
    StringBuilder resultBuf = new StringBuilder(); 
    while ((c = input.read()) != -1) { 
     resultBuf.append((char) c); 
    } 
    input.close(); 

    return resultBuf.toString(); 
} 
} 

У меня нет возможности проверить этот код прямо сейчас, но он должен работать именно так.

+0

Я проверил HTTPURLConnection, но проблема в том, что я не могу назвать точный URL-адрес с телом запроса. Просьба отправить сообщение, если возможно, –

+0

Просто помогите мне сформировать правильный URL-адрес из этого запроса на завивание. –