2016-05-31 137 views
1

我想要将json发送到查询参数中的GET请求以获取该json请求的响应。如何将json添加到GET请求查询参数?

如果我使用一个链接是这样的:

www.url.com/search?query1=abc &过滤器= { “或”:[{ “术语”:{ “VIN”: “1g1105sa2gu104086”]}}]}

然后URL部分显示为蓝色,如果我做它作为系统输出语句,像这样:

www.url.com/search?query1=abc&过滤器= { “或”:[{“条款“:{”vin“:[”1g1105sa2gu104086“]}}]}

和json看起来好像它不是请求的一部分。

要创建一个URL,我将操作的JSON字符串附加到URL,然后发送请求。但它表现为两个不同的字符串。

另外我已经使用编码器到JSON部分编码

滤波器= { “或”:[{ “术语”:{ “VIN”:[ “1g1105sa2gu104086”]}}]}

在这种情况下,括号和双引号该json中的所有内容都被编码,即使是equalTo符号。此外,该链接显示为蓝色,但在发送请求时,会抛出400错误请求的异常,因为equalTo也会转换为其编码格式。

我试图编码只有JSON部分离开filter=在URL中,这样的事情:

www.url.com/search?query1=abc&filter= { “或”:[{ “术语”:{ “VIN”: “1g1105sa2gu104086” ]}}]}

请求发送后出现的结果与我想要的结果不同。

我用下面的代码创建一个JSON:

private String getVinFromInventoryRequest(String vin) throws JSONException { 
    JSONObject request = new JSONObject(); 
    JSONArray orArray = new JSONArray(); 
    for(String vin : vins) { 
     JSONObject termsObject = new JSONObject(); 
     JSONObject vinsObject = new JSONObject(); 
     JSONArray vinsArray = new JSONArray(); 
     vinsArray.put(vin); 
     vinsObject.put("vin", vinsArray); 
     termsObject.put("terms", vinsObject); 
     orArray.put(termsObject); 
    } 
    request.put("or", orArray); 
    System.out.println("OfferMapper.getVinFromInventoryRequest " + request.toString()); 
    return request.toString(); 
} 
+0

怎么办你编码的JSON?该编码的结果是什么?你能提供例子吗? – Mark

+0

重复的:http://stackoverflow.com/questions/23476033/how-should-i-put-json-in-get-request –

+0

我使用URLEncoder在Java中编码json。它以这种格式编码:过滤器%3D%7B%22和%22%3A%5B%7B%22%22%3A%7B%22%%22%3A%5B%221g1105sa2gu104086%22%5D%7D%7D%5D %7D –

回答

0

也期待什么,我发现有一点谷歌搜索:

JSONObject json = new JSONObject(); 
json.put("someKey", "someValue");  

CloseableHttpClient httpClient = HttpClientBuilder.create().build(); 

try { 
    HttpPost request = new HttpPost("http://yoururl"); 
    StringEntity params = new StringEntity(json.toString()); 
    request.addHeader("content-type", "application/json"); 
    request.setEntity(params); 
    httpClient.execute(request); 
// handle response here... 
} catch (Exception ex) { 
    // handle exception here 
} finally { 
    httpClient.close(); 
} 

欲了解更多信息,请参阅:HTTP POST using JSON in Java

相关问题