参数 以query String格式,方法post,发送http请求

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014737756/article/details/79493857

query String格式:     http://ip:port?name=zhangsan&pwd=123456


  1. public class APIHttpClient {  
  2.     // 接口地址  
  3.     private static String apiURL = "http://ip:8080//order";  
  4.     private Log logger = LogFactory.getLog(this.getClass());  
  5.     private static final String pattern = "yyyy-MM-dd HH:mm:ss:SSS";  
  6.     private HttpClient httpClient = null;  
  7.     private HttpPost method = null;  
  8.     private long startTime = 0L;  
  9.     private long endTime = 0L;  
  10.     private int status = 0;  
  11.   
  12.     /** 
  13.      * 接口地址 
  14.      *  
  15.      * @param url 
  16.      */  
  17.     public APIHttpClient(String url) {  
  18.   
  19.         if (url != null) {  
  20.             this.apiURL = url;  
  21.         }  
  22.         if (apiURL != null) {  
  23.             httpClient = new DefaultHttpClient();  
  24.             method = new HttpPost(apiURL);  
  25.   
  26.         }  
  27.     }  
  28.   
  29.     /** 
  30.      * 调用 API 
  31.      *  
  32.      * @param parameters 
  33.      * @return 
  34.      */  
  35.     public String post(String parameters) {  
  36.         String body = null;  
  37.         logger.info("parameters:" + parameters);  
  38.   
  39.         if (method != null & parameters != null  
  40.                 && !"".equals(parameters.trim())) {  
  41.             try {  
  42.   
  43.                 // 建立一个NameValuePair数组,用于存储欲传送的参数  
  44.                 method.addHeader("Content-type","application/json; charset=utf-8");  
  45.                 method.setHeader("Accept""application/json");  
  46.                 method.setEntity(new StringEntity(parameters, Charset.forName("UTF-8")));  
  47.                 startTime = System.currentTimeMillis();  
  48.   
  49.                 HttpResponse response = httpClient.execute(method);  
  50.                   
  51.                 endTime = System.currentTimeMillis();  
  52.                 int statusCode = response.getStatusLine().getStatusCode();  
  53.                   
  54.                 logger.info("statusCode:" + statusCode);  
  55.                 logger.info("调用API 花费时间(单位:毫秒):" + (endTime - startTime));  
  56.                 if (statusCode != HttpStatus.SC_OK) {  
  57.                     logger.error("Method failed:" + response.getStatusLine());  
  58.                     status = 1;  
  59.                 }  
  60.   
  61.                 // Read the response body  
  62.                 body = EntityUtils.toString(response.getEntity());  
  63.   
  64.             } catch (IOException e) {  
  65.                 // 网络错误  
  66.                 status = 3;  
  67.             } finally {  
  68.                 logger.info("调用接口状态:" + status);  
  69.             }  
  70.   
  71.         }  
  72.         return body;  
  73.     }  
  74.   
  75.     public static void main(String[] args) {  
  76.         APIHttpClient ac = new APIHttpClient(apiURL);  
  77.         JsonArray arry = new JsonArray();  
  78.         JsonObject j = new JsonObject();  
  79.         j.addProperty("orderId""中文");  
  80.         j.addProperty("createTimeOrder""2015-08-11");  
  81.         arry.add(j);  
  82.         System.out.println(ac.post(arry.toString()));  
  83.     }  
  84.   
  85.     /** 
  86.      * 0.成功 1.执行方法失败 2.协议错误 3.网络错误 
  87.      *  
  88.      * @return the status 
  89.      */  
  90.     public int getStatus() {  
  91.         return status;  
  92.     }  
  93.     public void setStatus(int status) {  
  94.         this.status = status;  
  95.     }  
  96.     public long getStartTime() {  
  97.         return startTime;  
  98.     }  
  99.     public long getEndTime() {  
  100.         return endTime;  
  101.     }  
  102. }  


展开阅读全文

没有更多推荐了,返回首页