2016-05-31 6 views
1

jsonがそのjsonリクエストの応答を取得するために、jsonをqueryパラメータでGETリクエストに送信します。jsonをGETリクエストクエリパラメータに追加するにはどうすればよいですか?

私はリンク、このようなものを使用する場合:

www.url.com/search?query1=abc &フィルター= { "または":[{ "用語":{ "VINを":[私はSYSOUTステートメントとしてそれを行う場合は、URLの一部が青表示され、 "1g1105sa2gu104086"]}}]}

、このような何か:

www.url.com/search?query1=abc&フィルター= { "または":[{ "用語":{" vin ":[" 1g1105sa2gu104086 "]}}]}

となり、jsonは要求の一部でないかのように見えます。

URLを作成するには、操作したJSON文字列をURLに追加してからリクエストを送信します。しかし、それは2つの異なる文字列として現れます。

また、私は

フィルタ= JSONの一部を符号化するためにエンコーダを使用している{ "または":[{ "という用語は":{ "VIN":[ "1g1105sa2gu104086"]}}]}

この場合、角括弧と二重引用符は、そのjson内のすべてがエンコードされます。また、リンクは青色で表示されますが、要求を送信する際にはequalToもエンコード形式に変換されるため、400 Bad Requestの例外がスローされます。

私はこのような何か、URL自体にfilter=を残すのみJSONの一部をコードする試みた:

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

jsonをjavaのURLEncoderを使用してエンコードします。これは、次の形式でエンコードされます。フィルタ%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

関連する問題