PnxHttp

PnxHttp是一个简洁的http客户端,方便在PnxTest项目执行HTTP请求;支持GET、POST、PUT、DELETE...等标准的http请求方法。丰富的客制化配置、简单易用的流式API。

基本用法演示

//GET请求
PnxHttp.get("https://yourApiEndPoint")
       .queryString("brand", "telsa")
         .queryString("year", 2020)
         .asString();

//POST请求
PnxHttp.post("https://yourApiEndPoint")
       .field("name", "nicolas")
       .field("age", "28")
       .field("city", "上海")
       .asString();

//文件上传
File file = Paths.get(PnxContext.getTestResultLocation(), "download", "nic2.jpg").toFile();
PnxHttp.post("https://httpbin.org/post")
      .field("name", "nicolas")
      .field("avatar", file)
      .asString();

//byte数据
PnxHttp.post("https://httpbin.org/post")
       .body(("PnxTest").getBytes())
       .asString();

//动态路由
PnxHttp.get("https://yourApiEndPoint/{category}/{id}")
       .routeParam("category", "movie")
       .routeParam("id", "1908")
       .asString();

//Bearer认证
PnxHttp.get("https://yourApiEndPoint")
       .bearAuth("yourToken")
       .asString();

客户化配置

配置项 描述说明 默认值 单位 备注
connectionTimeout 与服务器建立连接的最大超时时间 10000 ms
socketTimeout 建立连接后获取到数据的最大超时时间 60000 ms 0表示没有超时
maxConnectionCount 连接线程池的最大连接数 200
maxPerRoute 一个域名的最大连接数 20
verifySsl 是否需要SSL认证 true 测试环境可以设置为false, 不进行SSL认证
compressionRequest 是否压缩请求数据 true
httpGateway 定义HTTP网关 null
proxy 定义HTTP请求代理 null
header 增加统一的http 请求头

实例:

 HttpConfig.builder()
            .header("clientId", "PnxTest")  //添加一个header
            .connectionTimeout(5000)        //设置连接超时时间5s
            .socketTimeout(5000)            //设置读取内容超时时间
            .gateway(myHttpGateway)         //设置统一网关
            .build();

BaseUrl

如果Pnxtest项目中的HTTP请求的入口地址都一样,那么建议在环境文件(例如env.qa.properties)中设置属性:

pnx.http.baseUrl = http://yourAPIBaseUrl

后续的HTTP请求可以直接使用path, 不用数据baseUrl:

PnxHttp.get("/getUserInfo").asString();

当然,输入整个URL请求地址也是没问题的。