У меня возникла проблема с использованием Spring restTemplate.
На данный момент я отправляю запрос PUT для службы отдыха, и эта служба обслуживания возвращает мне важную информацию в ответ.
Вопрос в том, что restTemplate.put - это метод void, а не строка, поэтому я не вижу этого ответа.
После некоторых ответов я изменил свой метод, и теперь я использую restTemplate.exchange, вот мой метод:
public String confirmAppointment(String clientMail, String appId)
{
String myJsonString = doLogin();
Response r = new Gson().fromJson(myJsonString, Response.class);
// MultiValueMap<String, String> map;
// map = new LinkedMultiValueMap<String, String>();
// JSONObject json;
// json = new JSONObject();
// json.put("status","1");
// map.add("data",json.toString());
String url = getApiUrl() + "company/" + getCompanyId() + "/appointment/" + appId + "?session_token=" + r.data.session_token;
String jsonp = "{\"data\":[{\"status\":\"1\"}]}";
RestTemplate rest = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json");
headers.add("Accept", "*/*");
HttpEntity<String> requestEntity = new HttpEntity<String>(jsonp, headers);
ResponseEntity<String> responseEntity =
rest.exchange(url, HttpMethod.PUT, requestEntity, String.class);
return responseEntity.getBody().toString();
}
Используя вышеописанный метод, я получаю 400 Bad Request
Я знаю свои параметры, url и т.д., это нормально, потому что я могу сделать запрос restTemplate.put следующим образом:
try {
restTemplate.put(getApiUrl() + "company/" + getCompanyId() + "/appointment/" + appId + "?session_token=" + r.data.session_token, map);
} catch(RestClientException j)
{
return j.toString();
}
Проблема (как я уже говорил) заключается в том, что try/catch выше не возвращает никакого ответа, но он дает мне ответ 200.
Итак, теперь я спрашиваю, что может быть неправильным?