使用HttpClient进行远程接口测试
2016-01-21 13:53
876 查看
前两天在工作中,项目组长给我了一个远程接口让我给测一下,因为是http协议,所以我首先想到了用httpClient工具类来测试,网上一查,找到了好多示例代码,随便复制了一个demo进行了简单的修改,结果怎么测试都是连接超时,试了很多个demo也不好使,最后发现是因为我们公司访问外网是通过代理,所以在进行测试的时候需要配置代理。一下是我的测试程序
用到的jar包:
用到的jar包:
package com.lym.test; import org.apache.http.HttpEntity; import org.apache.http.HttpHost; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; import com.google.gson.JsonObject; public class HttpClientTest { public static void main(String args[]) throws Exception { // 创建HttpClientBuilder HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); // HttpClient CloseableHttpClient closeableHttpClient = httpClientBuilder.build(); // 依次是目标请求地址,端口号,协议类型 HttpHost target = new HttpHost("61.144.244.6:8888/sztmerchant/merchant/addIsztMerchant.htm", 8888, "http"); // 依次是代理地址,代理端口号,协议类型 HttpHost proxy = new HttpHost("proxy3.bj.petrochina", 8080, "http"); RequestConfig config = RequestConfig.custom().setProxy(proxy).build(); // 请求地址 HttpPost httpPost = new HttpPost("http://61.144.244.6:8888/sztmerchant/merchant/addIsztMerchant.htm"); // 设置头信息 httpPost.addHeader("Content-type", "application/json; charset=utf-8"); httpPost.setHeader("Accept", "application/json"); httpPost.setConfig(config); // 创建参数json串 JsonObject jsonObj = new JsonObject(); jsonObj.addProperty("merchantNo", "33300911238"); jsonObj.addProperty("merchantName", "电商运营生产测试1238"); String jsonStr = jsonObj.toString(); System.out.println("parameters: " + jsonStr); StringEntity entity; try { entity = new StringEntity(jsonStr, "UTF-8"); httpPost.setEntity(entity); CloseableHttpResponse response = closeableHttpClient.execute(target, httpPost); // getEntity() HttpEntity httpEntity = response.getEntity(); if (httpEntity != null) { // 打印响应内容 System.out.println("result: " + EntityUtils.toString(httpEntity, "UTF-8")); }else { System.out.println("无响应内容"); } // 释放资源 if(closeableHttpClient != null) { closeableHttpClient.close(); } } catch (Exception e) { e.printStackTrace(); } } }
相关文章推荐
- 网络加密解密原理(二) RSA加密解密及数字签名Java实现
- tcp-hybla
- tinyhttpd源码分析
- The type javax.servlet.http.HttpServletRequest cannot be resolved.
- 5. http://kb.cnblogs.com/page/90838/
- 新浪实时股票数据接口http://hq.sinajs.cn/list=code
- 神经网络(Neural Network)
- 网络加密解密原理(一)
- 升级到iOS9.0后,Http请求导致应用加载不出数据
- 网络
- BZOJ 1491: [NOI2007]社交网络( floyd )
- Java网络编程--简易下载器实现
- Http StatuCode说明
- Android自定义圆角ImageView 支持网络图片
- ※回顾※关于阅读TCPIP等源码时遇到的:do while(0) 用法
- Nginx HTTP请求流程
- CNN Note
- httpclient 4.3及以上版本,发送和接收https
- https双向认证(基于程序访问,j2ee和android上皆可用)
- Android ImageCache图片缓存,使用简单,支持预取,支持多种缓存算法,支持不同网络类型,扩展性强