接口测试之HttpClient

Posted 薛定谔的猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试之HttpClient相关的知识,希望对你有一定的参考价值。

一.Get请求测试

测试依赖

     <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.3</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.28</version>
        </dependency>

 

public static String getResult(String url,Map<String, Object> queryMap,Map<String, Object> postMap){
        //使用方法
        String host = "http://localhost:8081/";
        //1、公共参数
        String appid = "2c844a8b24b047d1a4c350f07240d2dc";
        String appsecret = "d75203566ed744a1a6ef90b9d22c46e7";
        String noncestr = "32412423";
        String erp = "e3";
        String erpVersion = "1.0";

        // postMap.put("type", "中文");
        //4、求出签名和请求串
        String[] rets = GetSignUtils.genSign(appid, appsecret, noncestr, erp, erpVersion,
                queryMap, postMap);//如果非POST请求则最后一个参数postMap为null即可

        System.out.println(rets[1]);
        String httpGet = HttpClientUtil.HttpGet(host + url + "?" + rets[1]);
        return httpGet;
    }

 

二.Post请求测试

 

    public static String postResult(String url,Map<String,Object> queryMap,Map<String,Object> postMap,JSONObject jsonParam){
        //使用方法
        String host = "http://localhost:8081/";
        //1、公共参数
        String appid = "2c844a8b24b047d1a4c350f07240d2dc";
        String appsecret = "d75203566ed744a1a6ef90b9d22c46e7";
        String noncestr = "32412423";
        String erp = "e3";
        String erpVersion = "1.0";
        String[] rets = GetSignUtils.genSign(appid, appsecret, noncestr, erp, erpVersion,
                queryMap, postMap);//如果非POST请求则最后一个参数postMap为null即可
        String uri = host + url +"?"+ rets[1];
        System.out.println(uri);
        HttpPost httpPost = new HttpPost(uri);
        CloseableHttpClient client = HttpClients.createDefault();
        String respContent = null;
//        json方式

        StringEntity entity = new StringEntity(jsonParam.toString(),"utf-8");//解决中文乱码问题
        entity.setContentEncoding("UTF-8");
        entity.setContentType("application/json");
        httpPost.setEntity(entity);
        System.out.println();

        HttpResponse resp = null;
        try {
           resp = client.execute(httpPost);
        if(resp.getStatusLine().getStatusCode() == 200) {
            HttpEntity he = resp.getEntity();
            respContent = EntityUtils.toString(he,"UTF-8");
        }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return respContent;
    }

 

以上是关于接口测试之HttpClient的主要内容,如果未能解决你的问题,请参考以下文章

接口-httpClient

接口测试—HttpClient

接口测试“八重天”---HttpClient

直播2题目:HttpClient在接口测试中应用

HttpClient + Testng实现接口测试

最全面Java接口自动化测试实战 HttpClient+TestNG+Mock+MyBatis