public static JSONObject postFormUrlEecoded(RestTemplate restTemplate, String url, String body) {
System.out.println("postFormUrlEecoded.url=" + url);
System.out.println("postFormUrlEecoded.body=" + body);
return request(restTemplate, url, MediaType.APPLICATION_FORM_URLENCODED, HttpMethod.POST, body, "");
}
public static JSONObject request(RestTemplate restTemplate, String url, MediaType mediaType, HttpMethod httpMethod, String body, Object... uriVariables) {
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setContentType(mediaType);
HttpEntity<String> mapHttpEntity = new HttpEntity<>(body, httpHeaders);
ResponseEntity<String> responseEntity = null;
try {
logger.info("{} 請求引數 {} ", url, body);
responseEntity = restTemplate.exchange(url, httpMethod, mapHttpEntity, String.class, uriVariables);
} catch (RestClientException e) {
e.printStackTrace();
return null;
}
if (responseEntity.getStatusCodeValue() == 200) {
logger.info("{} 請求結果 {} ", url, responseEntity.getBody());
return JSON.parseObject(responseEntity.getBody());
} else {
logger.error("請求 {} 失敗", url);
return null;
}
}
org.springframework.web.client.RestClientException: Error while extracting response for type [class java.lang.String] and content type [application/json;charset=utf-16]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.lang.String` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.lang.String` out of START_OBJECT token
at [Source: (PushbackInputStream); line: 1, column: 1]
at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:117)
at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:995)
at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:978)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:737)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:670)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:579)
at com.butech.bmcporabvsrv.util.RestTemplateUtil.request(RestTemplateUtil.java:55)
at com.butech.bmcporabvsrv.util.RestTemplateUtil.postFormUrlEecoded(RestTemplateUtil.java:22)
at com.butech.bmcporabvsrv.support.erp.ErpOpenApi.login(ErpOpenApi.java:56)
uj5u.com熱心網友回復:
檢查下START_OBJECT 所在的物件是否實作了序列號介面uj5u.com熱心網友回復:
//設定接識訓傳值的格式為jsonList<MediaType> mediaTypeList = new ArrayList<>();
mediaTypeList.add(mediaType);
httpHeaders.setAccept(mediaTypeList);
uj5u.com熱心網友回復:
json決議錯誤,介面回傳的資料不是標準json格式轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/9697.html
標籤:Web 開發
