[java] view plain copy print ? @ResponseBody @RequestMapping(value="/order",method=RequestMethod.POST) public boolean order(HttpServletRequest request,@RequestBody List<Order> orders) throws Exception { AdmPost admPost = SessionUtil.getCurrentAdmPost(request); if(admPost == null){ throw new RuntimeException("[OrderController-saveOrUpdate()] 当前登陆的用户职务信息不能为空!"); } try { this.orderService.saveOrderList(orders,admPost); Loggers.log("订单管理",admPost.getId(),"导入",new Date(),"导入订单成功,订单信息--> " + GsonUtil.toString(orders, new TypeToken<List<Order>>() {}.getType())); return true; } catch (Exception e) { e.printStackTrace(); Loggers.log("订单管理",admPost.getId(),"导入",new Date(),"导入订单失败,订单信息--> " + GsonUtil.toString(orders, new TypeToken<List<Order>>() {}.getType())); return false; } } 通过ajax访问的时候,代码如下:
[javascript] view plain copy print ? $.ajax({ type : "POST", contentType : "application/json; charset=utf-8", url : ctx + "order/saveOrUpdate", dataType : "json", anysc : false, data : {orders:[{orderId:"11",createTimeOrder:"2015-08-11"}]}, // Post 方式,data参数不能为空"",如果不传参数,也要写成"{}",否则contentType将不能附加在Request Headers中。 success : function(data){ if (data != undefined && $.parseJSON(data) == true){ $.messager.show({ title:'提示信息', msg:'保存成功!', timeout:5000, showType:'slide' }); }else{ $.messager.alert('提示信息','保存失败!','error'); } }, error : function(XMLHttpRequest, textStatus, errorThrown) { alert(errorThrown + ':' + textStatus); // 错误处理 } }); 通过HttpClient方式访问,代码如下:
[java] view plain copy print ? package com.ec.spring.test; import java.io.IOException; import java.nio.charset.Charset; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import com.google.gson.JsonArray; import com.google.gson.JsonObject; public class APIHttpClient { // 接口地址 private static String apiURL = "http://192.168.3.67:8080/lkgst_manager/order/order"; private Log logger = LogFactory.getLog(this.getClass()); private static final String pattern = "yyyy-MM-dd HH:mm:ss:SSS"; private HttpClient httpClient = null; private HttpPost method = null; private long startTime = 0L; private long endTime = 0L; private int status = 0; /** * 接口地址 * * @param url */ public APIHttpClient(String url) { if (url != null) { this.apiURL = url; } if (apiURL != null) { httpClient = new DefaultHttpClient(); method = new HttpPost(apiURL); } } /** * 调用 API * * @param parameters * @return */ public String post(String parameters) { String body = null; logger.info("parameters:" + parameters); if (method != null & parameters != null && !"".equals(parameters.trim())) { try { // 建立一个NameValuePair数组,用于存储欲传送的参数 method.addHeader("Content-type","application/json; charset=utf-8"); method.setHeader("Accept", "application/json"); method.setEntity(new StringEntity(parameters, Charset.forName("UTF-8"))); startTime = System.currentTimeMillis(); HttpResponse response = httpClient.execute(method); endTime = System.currentTimeMillis(); int statusCode = response.getStatusLine().getStatusCode(); logger.info("statusCode:" + statusCode); logger.info("调用API 花费时间(单位:毫秒):" + (endTime - startTime)); if (statusCode != HttpStatus.SC_OK) { logger.error("Method failed:" + response.getStatusLine()); status = 1; } // Read the response body body = EntityUtils.toString(response.getEntity()); } catch (IOException e) { // 网络错误 status = 3; } finally { logger.info("调用接口状态:" + status); } } return body; } public static void main(String[] args) { APIHttpClient ac = new APIHttpClient(apiURL); JsonArray arry = new JsonArray(); JsonObject j = new JsonObject(); j.addProperty("orderId", "中文"); j.addProperty("createTimeOrder", "2015-08-11"); arry.add(j); System.out.println(ac.post(arry.toString())); } /** * 0.成功 1.执行方法失败 2.协议错误 3.网络错误 * * @return the status */ public int getStatus() { return status; } /** * @param status * the status to set */ public void setStatus(int status) { this.status = status; } /** * @return the startTime */ public long getStartTime() { return startTime; } /** * @return the endTime */ public long getEndTime() { return endTime; } }
