HTTP POST接口带参数的HttpClient请求方法和调用

这篇具有很好参考价值的文章主要介绍了HTTP POST接口带参数的HttpClient请求方法和调用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

接口自动化测试,今天遇到POST接口带参数,参数在url上,发现原来的工具类中没有该方法,重新调试加上。

httpclient post传参,# Java自动化框架,java,servlet,开发语言

 doPost方法如下:

    /**
     * 发送POST请求,带请求参数
     * @param url 请求地址
     * @param headers 请求头
     * @param params 请求params
     * @return getHttpClientResult getHttpClientResult方法
     */

    //public static String doPost(String url, JSONObject json,String token) {
    public  HttpClientResult doPost(String url, Map<String, String> headers,Map<String,String> params){
        CloseableHttpClient httpClient = null;
        CloseableHttpResponse httpResponse=null;
        HttpPost httpPost=null;
        HttpClientResult httpClientResult=null;
        //String result="";
        try {
            //1.创建httpClient对象
            //httpClient = HttpClients.createDefault();
            httpClient =createHttpsClient(filePath,passWord);
            // 创建访问的地址
            URIBuilder uriBuilder = new URIBuilder(url);
            if (params != null) {
                Set<Map.Entry<String, String>> entrySet = params.entrySet();
                for (Map.Entry<String, String> entry : entrySet) {
                    uriBuilder.setParameter(entry.getKey(), entry.getValue());
                }
            }
            //2.创建httpPost对象
            httpPost = new HttpPost(uriBuilder.build());
            //httpPost = new HttpPost(url);
            //2.1对象设置请求头
            //httpPost.setHeader("Content-Type", "application/json;charset=UTF-8");
            //httpPost.setHeader("Authorization",token);
            packageHeader(headers, httpPost);
            //2.2封装请求参数
            //packageParam(params, httpPost);

            //2.3对象设置请求和传输超时时间
            RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(SOCKET_TIME_OUT).setConnectTimeout(CONNECT_TIME_OUT).build();
            httpPost.setConfig(requestConfig);
            //3.使用httpClient发起请求并响应获取response
            /*
            httpResponse = httpClient.execute(httpPost);
            HttpEntity entity = httpResponse.getEntity();
            //4.解析响应,获取数据
            //判断状态码是否是200
            if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                result = EntityUtils.toString(entity,ENCODING);
                //System.out.println(result);
            }
            //System.out.println(httpResponse.getStatusLine());
            //System.out.println(httpResponse.getStatusLine().getStatusCode());
            //System.out.println(httpResponse.getProtocolVersion());
            //System.out.println(HttpStatus.SC_OK);
            */
            httpClientResult=getHttpClientResult(httpResponse,httpClient,httpPost);
        }
        catch (Exception e){
            log.error(e.toString());
        }
        finally {
            //5.释放资源
            release(httpResponse, httpClient);

        }
        return httpClientResult;
    }

调用:

        String appId="123456789";
        Map<String, String> headers=new HashMap<>();
        headers.put("Content-Type","application/json;charset=UTF-8");
        headers.put("Authorization","Bearer "+token);

    @Test
    public void c06_pluginDeployment() {
        for (ApiDataBean data : listExcel) {
            if (data.getApiName().trim().equals("pluginDeployment")) {
                HttpsClientUtils httpUtils = new HttpsClientUtils();
                String host=BaseRequest.getHost();//这里例如:https://IP
                String reqUrl = host + data.getUrl();   //https://IP+接口url
                System.out.println(reqUrl);
                HttpClientResult httpResult= null;
                try {
                    Map<String, String> params=new HashMap<>();
                    params.put("appId",appId);
                    System.out.println(appId);
                    httpResult = httpUtils.doPost(reqUrl, headers,params);
                } catch (Exception e) {
                    e.printStackTrace();
                    log.error(String.valueOf(e));
                }

                String resultContent = httpResult.getContent();
                //int code = JsonPath.read(resultContent, "$.code");
                log.info(resultContent);
            }
        }
    }

参考:

[Java 接口自动化框架]httpclient4.5.3(CloseableHttpClient) https的工具类HttpsClientUtils文章来源地址https://www.toymoban.com/news/detail-741959.html

到了这里,关于HTTP POST接口带参数的HttpClient请求方法和调用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java HttpClient 实战 GET 与 POST 请求一网打尽

    在Java中, HttpClient 是进行HTTP通信的一个强大工具。它提供了简单而灵活的API,可以轻松地发送HTTP请求并处理响应。在本篇博文中,我们将深入探讨如何使用 HttpClient 执行GET、POST等不同类型的HTTP请求。 首先,确保在项目的 pom.xml 文件中引入 HttpClient 的依赖: 让我们从一个简

    2024年01月17日
    浏览(46)
  • 基于 httpClient 请求 Https接口

    代码如下,亲测可用

    2024年01月20日
    浏览(45)
  • 【Angular中的HTTP请求】- HttpClient 详解

            大多数前端应用都要通过 HTTP 协议与服务器通讯,才能下载或上传数据并访问其它后端服务。Angular 给应用提供了一个 HTTP 客户端 API,也就是 @angular/common/http 中的 HttpClient 服务类。         要想使用 HttpClient ,就要先导入 Angular 的 HttpClientModule 。一般都是在根

    2024年02月08日
    浏览(41)
  • java 远程调用 httpclient 调用https接口 忽略SSL认证

    httpclient 调用https接口,为了避免需要证书,所以用一个类继承DefaultHttpClient类,忽略校验过程。下面是忽略校验过程的代码类:SSLClient  然后再调用的远程get、post请求中使用SSLClient 创建Httpclient ,代码如下:

    2024年02月11日
    浏览(42)
  • HttpClient:HTTP GET请求的服务器响应输出

    前言 在现代软件开发中,与网络通信相关的技术变得愈发重要。Java作为一种强大而灵活的编程语言,提供了丰富的工具和库,用于处理各种网络通信场景。本文将聚焦在Java中使用HttpClient库发送HTTP GET请求,并将服务器的响应数据进行输出,同时加入代理服务器的配置,以应

    2024年02月20日
    浏览(46)
  • java调用http接口(get请求和post请求)

    1.http接口的格式如下: 图片选择失败,我只能把数据贴出来,如果有不懂的可以问我哈。 http://localhost:8881/department/getDepartmentList接口数据如下:(请求方式是GET) http://localhost:8881/department/getDataById?id=3接口数据如下:(请求方式是POST) 2.需要引入的包有: 3.实现方法如下:

    2024年02月13日
    浏览(55)
  • 【微软技术栈】C#.NET 使用 HttpClient 类发出 HTTP 请求

    创建 HttpClient 发出 HTTP 请求 处理 HTTP 响应 HTTP 错误处理 HTTP 代理 本文介绍如何使用  HttpClient  类发出 HTTP 请求和处理响应。  重要 所有示例 HTTP 请求都以下面 URL 之一为目标: https://jsonplaceholder.typicode.com:用于测试和原型设计的免费虚设 API。 https://www.example.com:此域用于

    2024年02月04日
    浏览(39)
  • postman,浏览器测试接口正常,HttpClient 调用就报错

    一次奔溃的经历 事情是这样的:第三方提供了一个接口需要对接,我就对接了,测试环节的时候怎么都调不通,各种排查,各方人员都动员了起来,就是没有找到问题,下面把问题报错的原因呈上: 就是报错 508 ,返回一个空的 Response body. 刚开始出现这个问题,我怀疑是不

    2024年02月01日
    浏览(40)
  • Spring Boot进阶(72):【教程】用Spring Boot和HttpClient实现高效的HTTP请求

      随着系统规模的不断扩大和复杂度的提升,异步通信这种模式越来越被广泛应用于各种分布式系统中。RocketMQ作为一个高性能、高可靠性、分布式消息队列,得到了众多企业的青睐。本文将介绍如何使用Spring Boot整合RocketMQ,实现异步通信。   那么,具体如何实现呢?这

    2024年02月09日
    浏览(45)
  • java基础 - 实现一个简单的Http接口功能自动化测试框架(HttpClient + TestNG)

    已知现在已经用Spring boot框架搭建了一个简单的web服务,并且有现成的Controller来处理http请求,以之前搭建的图书管理服务为例,BookController的源码如下: 在搭建一个Http接口功能自动化测试框架之前,我们需要思考几个问题: 1、http请求的发送,使用什么实现? 2、接口返回的

    2024年02月05日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包