当前位置: 首页 > article >正文

httpclient POST 工具方法

POST 请求

    /**
     * 发送POST方式请求
     * @param url
     * @param paramMap
     * @return
     * @throws IOException
     */
    public static String doPost(String url, Map<String, String> paramMap) throws IOException {
        // 创建Httpclient对象
        CloseableHttpClient httpClient = HttpClients.createDefault();
        CloseableHttpResponse response = null;
        String resultString = "";

        try {
            // 创建Http Post请求
            HttpPost httpPost = new HttpPost(url);

            // 创建参数列表
            if (paramMap != null) {
                List<NameValuePair> paramList = new ArrayList();
                for (Map.Entry<String, String> param : paramMap.entrySet()) {
                    paramList.add(new BasicNameValuePair(param.getKey(), param.getValue()));
                }
                // 模拟表单
                UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList);
                httpPost.setEntity(entity);
            }

            httpPost.setConfig(builderRequestConfig());

            // 执行http请求
            response = httpClient.execute(httpPost);

            resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
        } catch (Exception e) {
            throw e;
        } finally {
            try {
                response.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        return resultString;
    }

    /**
     * 发送POST方式请求
     * @param url
     * @param paramMap
     * @return
     * @throws IOException
     */
    public static String doPost4Json(String url, Map<String, String> paramMap) throws IOException {
        // 创建Httpclient对象
        CloseableHttpClient httpClient = HttpClients.createDefault();
        CloseableHttpResponse response = null;
        String resultString = "";

        try {
            // 创建Http Post请求
            HttpPost httpPost = new HttpPost(url);

            if (paramMap != null) {
                //构造json格式数据
                JSONObject jsonObject = new JSONObject();
                for (Map.Entry<String, String> param : paramMap.entrySet()) {
                    jsonObject.put(param.getKey(),param.getValue());
                }
                StringEntity entity = new StringEntity(jsonObject.toString(),"utf-8");
                //设置请求编码
                entity.setContentEncoding("utf-8");
                //设置数据类型
                entity.setContentType("application/json");
                httpPost.setEntity(entity);
            }

            httpPost.setConfig(builderRequestConfig());

            // 执行http请求
            response = httpClient.execute(httpPost);

            resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
        } catch (Exception e) {
            throw e;
        } finally {
            try {
                response.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        return resultString;
    }
    private static RequestConfig builderRequestConfig() {
        return RequestConfig.custom()
                .setConnectTimeout(TIMEOUT_MSEC)
                .setConnectionRequestTimeout(TIMEOUT_MSEC)
                .setSocketTimeout(TIMEOUT_MSEC).build();
    }

}

http://www.kler.cn/a/455271.html

相关文章:

  • 群落生态学研究进展▌Hmsc包对于群落生态学假说的解读、Hmsc包开展单物种和多物种分析的技术细节及Hmsc包的实际应用
  • springboot 配置跨域访问
  • Docker离线安装简易指南
  • unity使用代码在动画片段中添加event
  • JS面试题|[2024-12-26]
  • 【debug】
  • python学opencv|读取图像(二十一)使用cv2.circle()绘制圆形进阶
  • <代码随想录> 算法训练营-2024.12.27
  • Linux 硬盘扩容 分区 挂载
  • 蓝牙BLE开发——解决iOS设备获取MAC方式
  • FreePBX修改IP地址和端口以及添加SSL证书开启HTTPS访问
  • Ajax总结
  • HTMLCSS:超级酷炫的3D照片墙
  • 项目三:信号源的FPGA实现
  • 蓝牙链路控制(Link Control)命令概览
  • 【音视频工具系列】streamEye 工具分析 H264 码流详细教程
  • Scala的统计
  • 转运机器人推动制造业智能化转型升级
  • Vue3响应式数据: 深入分析Ref与Reactive
  • 系统压力测试助手——stress-ng
  • 阿里云新用户服务器配置
  • 多技术栈时代的利器:自动化协作流水线全面实践
  • c#多线程之生产者-消费者模型
  • 深度学习中的并行策略概述:2 Data Parallelism
  • YOLO模型格式转换:pt -> onnx -> rknn
  • 使用Python实现量子电路模拟:走进量子计算的世界