我想发送一个JSON对象(请注意,它不应该转换为字符串,因为服务器端代码基于Spring初学者项目并且具有参数(@RequestBody PCAP pcap))我有我的下面的代码,但它将身体转换为一个字符串,给我400个不好的请求。我该如何发送json对象在java中的http发布内容
private void sendData(String ip){
try{
JSONObject json=new JSONObject();
json.put("time_range", "22-23");
json.put("flow_id", "786");
json.put("ip_a", "192.65.78.22");
json.put("port_a", "8080");
json.put("regex", "%ab");
URL url=new URL("http://"+ip+":8080/pcap");
HttpURLConnection httpcon=(HttpURLConnection)url.openConnection();
httpcon.setDoOutput(true);
httpcon.setRequestMethod("POST");
httpcon.setRequestProperty("Accept", "application/json");
httpcon.setRequestProperty("Content-Type", "application/json");
Cookie cookie=new Cookie("user", "abc");
cookie.setValue("store");
httpcon.setRequestProperty("Accept", "application/json");
httpcon.setRequestProperty("Cookie", cookie.getValue());
OutputStreamWriter output=new OutputStreamWriter(httpcon.getOutputStream());
System.out.println(json);
output.write(json.toString());
httpcon.connect();
String output1=httpcon.getResponseMessage();
System.out.println(output1);
}catch(Exception e){
}
}
注:服务器端代码
@RequestMapping(value = URIConstansts.PCAP, produces = { "application/json" }, method = RequestMethod.POST)
public ResponseEntity getPcap(HttpServletRequest request,@RequestBody PcapParameters pcap_params)
但你不觉得这会给我一个400错误,因为在服务器端(注意它的服务器端是基于spring mvc的其余代码)是(@RequestBody PCAP pcap)和im在身体中发送一个字符串 –
哈哈。你从这里复制:http://stackoverflow.com/questions/7181534/http-post-using-json-in-java – tObi