spring rest 템플릿을 사용하여 json 배열을 요청으로 보냅니다. 요청을 보낼 수있는 소스 코드는 다음과 같다 :Spring Rest JsonArray를 보낼 템플릿
JSONArray jsonArray = new JSONArray();
for (Iterator iterator = itemlist.iterator(); iterator.hasNext();) {
Item item = (Item)iterator.next();
JSONObject formDetailsJson = new JSONObject();
formDetailsJson.put("id", item.getItemConfId());
formDetailsJson.put("name", item.getItems().getItemName());
formDetailsJson.put("price", item.getPrice());
formDetailsJson.put("Cost",item.getCost());
jsonArray.put(formDetailsJson);
}
List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>();
acceptableMediaTypes.add(MediaType.APPLICATION_JSON);
// Prepare header
HttpHeaders headers = new HttpHeaders();
headers.setAccept(acceptableMediaTypes);
// Pass the new person and header
HttpEntity<JSONArray> entity = new HttpEntity<JSONArray>(jsonArray, headers);
System.out.println("Json Object : "+entity);
// Send the request as POST
try {
ResponseEntity<String> result = restTemplate.exchange("my url", HttpMethod.POST, entity, String.class);
} catch (Exception e) {
logger.error(e);
return "Connection not avilable please try again";
}
받아 들일 요청 :
@RequestMapping(value = "/testStock", method = RequestMethod.POST,headers="Accept=application/xml, application/json")
public @ResponseBody int testStock(@RequestBody List<ItemList> jsonArray) {
logger.debug("Received request to connect ms access : "+jsonArray.size());
//int returnSizecount = stockList.getStocklst().size();
return 1;
}
문제는 나에게 다음과 같은 오류를 제공한다는 것입니다 : 요청을 쓸 수 없습니다 : 요청을 찾을 수 없습니다 적합 HttpMessageConverter를 type [org.json.JSONArray]. 어떤 제안이라도 대단히 수용 가능합니다.
이 tostring으로 변환(). 요청 수락을 위해 서버 측에서 415 개의 지원되지 않는 미디어 유형을 제공합니다. – User
header.setContentType (MediaType.APPLICATION_JSON)과 같은 헤더를 추가하면 서버에 문자열이 json임을 알리고, 작동하는지 알려 주면 – Koitoer
이미 내 코드에서 미디어 유형으로 추가했습니다. 서버 측에서해야할 일은 내 코드에서 testStock 메소드를 의미합니다. – User