HTTP POST с JSON - неправильные параметры - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь вызвать службу REST, которая принимает json с двумя параметрами param1 и param2 , как показано ниже:

[{
"param1": "xxx",
"param2": "xxx"
}]

После моего кода, вызывающего MY_SERVICE_URL:

HttpClient client = new DefaultHttpClient();
HttpPost request = new HttpPost(MY_SERVICE_URL);        
String json = new String("[{\"param1\": \"" + "param1Value" + "\",\"param2\": \"" + "param2Value" + "\"}]");
request.setEntity(new StringEntity(json));
request.setHeader("Content-Type", "application/json");
request.setHeader("Accept", "application/json");

try {
    HttpResponse response = client.execute(request);
    int responseCode = response.getStatusLine().getStatusCode();
    BufferedReader rd = new BufferedReader (new InputStreamReader(response.getEntity().getContent()));
    String output = rd.readLine();
    System.out.println("Response code: " + responseCode);
    System.out.println("Output: " + output);
} catch(Exception ex) {
    System.out.println("Error");
}

client.getConnectionManager().shutdown();

Ошибка POST, потому что он не распознает первый параметр как действительный: вместо чтения param1 он рассматривает параметр \ "param1 \"

Любая помощь приветствуется Спасибо Simone

1 Ответ

0 голосов
/ 29 октября 2018

Используйте приведенный ниже фрагмент, чтобы создать JSON для публикации через веб-сервис / API. Надеюсь, поможет Добавьте также следующую ссылку import org.json.simple.JSONObject;

JSONObject item = new JSONObject();
item.put("param1", "testValue1");
item.put("param2", 123);
item.put("param3", "testValue3");

String json = item.toString();
...