记录一下用httpUtil工具类的post请求带头部参数

本文介绍了如何在项目中为对接第三方短信平台需求,自定义一个支持头部参数的HttpPost请求,包括设置header和发送JSON数据的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本来网上有很多HttpUtil工具类封装,里面封装了各种doget/dopost

本身自己项目之前也有人用过,但是最近对接一个第三方短信平台,按照他们的文档需要传参头部参数,但是不知道为什么用现有的post请求没法修改头部参数,所以自己写一个post请求吧

            //短信平台要求固定的头部参数格式
Map<String, String> header = Maps.newHashMap();
            header.put("Accept", "application/json;charset=utf-8");
            header.put("Content-Type", "application/json;charset=utf-8");
            //请求参数的账号密码以及加密
            LinkedHashMap map = new LinkedHashMap();
            map.put("userName", name);
            String result = HttpUtil.doPostJson("url", header, JsonHelper.objectToJson(map));

    public static String doPostJson(String url,Map<String, String> headerMap, String json) {
        // 创建Httpclient对象
        CloseableHttpClient httpClient = HttpClients.createDefault();
        CloseableHttpResponse response = null;
        String resultString = "";
        try {
            // 创建Http Post请求
            HttpPost httpPost = new HttpPost(url);
            if (headerMap != null) {
                Iterator headerIterator = headerMap.entrySet().iterator();          //循环增加header
                while(headerIterator.hasNext()){
                    Entry<String,String> elem = (Entry<String, String>) headerIterator.next();
                    httpPost.addHeader(elem.getKey(),elem.getValue());
                }
            }
            // 创建请求内容
            StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);
            httpPost.setEntity(entity);
            // 执行http请求
            response = httpClient.execute(httpPost);
            resultString = EntityUtils.toString(response.getEntity(), "UTF8");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                response.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return resultString;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随风奔跑的十八岁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值