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応答が返されることです。
だから今私は尋ねます、何が間違っている可能性がありますか?