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

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.      * @param url 
  15.      */  
  16.     public APIHttpClient(String url) {  
  17.         if (url != null) {  
  18.             this.apiURL = url;  
  19.         }  
  20.         if (apiURL != null) {  
  21.             httpClient = new DefaultHttpClient();  
  22.             method = new HttpPost(apiURL);  
  23.         }  
  24.     }  
  25.   
  26.     /** 
  27.      * 调用 API 
  28.      * @param parameters 
  29.      * @return 
  30.      */  
  31.     public String post(String parameters) {  
  32.         String body = null;  
  33.         logger.info("parameters:" + parameters);  
  34.         if (method != null & parameters != null  
  35.                 && !"".equals(parameters.trim())) {  
  36.             try {  
  37.                 // 建立一个NameValuePair数组,用于存储欲传送的参数  
  38.                 method.addHeader("Content-type","application/json; charset=utf-8");  
  39.                 method.setHeader("Accept""application/json");  
  40.                 method.setEntity(new StringEntity(parameters, Charset.forName("UTF-8")));  
  41.                 startTime = System.currentTimeMillis();  
  42.                 HttpResponse response = httpClient.execute(method);  
  43.                 endTime = System.currentTimeMillis();  
  44.                 int statusCode = response.getStatusLine().getStatusCode();  
  45.                 logger.info("statusCode:" + statusCode);  
  46.                 logger.info("调用API 花费时间(单位:毫秒):" + (endTime - startTime));  
  47.                 if (statusCode != HttpStatus.SC_OK) {  
  48.                     logger.error("Method failed:" + response.getStatusLine());  
  49.                     status = 1;  
  50.                 }  
  51.                 // Read the response body  
  52.                 body = EntityUtils.toString(response.getEntity());  
  53.             } catch (IOException e) {  
  54.                 // 网络错误  
  55.                 status = 3;  
  56.             } finally {  
  57.                 logger.info("调用接口状态:" + status);  
  58.             }  
  59.         }  
  60.         return body;  
  61.     }  
  62.     /** 
  63.      * 0.成功 1.执行方法失败 2.协议错误 3.网络错误 
  64.      * @return the status 
  65.      */  
  66.     public int getStatus() {  
  67.         return status;  
  68.     }  
  69.     public void setStatus(int status) {  
  70.         this.status = status;  
  71.     }  
  72.     public long getStartTime() {  
  73.         return startTime;  
  74.     }  
  75.     public long getEndTime() {  
  76.         return endTime;  
  77.     }  
  78. }  

 

 

 

你可能感兴趣的:(参数 以query String格式,方法post,发送http请求)