我使用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鍵入[org.json.JSONArray]。任何建議都是非常可接受的。
將其轉換爲的ToString()。對於請求接受,它在服務器端給我415不支持的媒體類型。 – User
添加一個這樣的頭文件:header.setContentType(MediaType.APPLICATION_JSON),這個telll服務器的字符串是一個json,請讓我知道如果這樣的作品 – Koitoer
我已經將它作爲媒體類型添加到我的代碼中。在我的代碼中,在服務器端做什麼意味着testStock方法。 – User