解决PostMethod的中文乱码

解决HttpClient的PostMethod的中文乱码问题

问题场景:

 解决代码:

请求时设定编码格式:

post.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "utf-8");

完整代码:

/**
     * 封装请求参数,并发送请求
     * 
     * @param record
     * @return
     */
    public String sendPost(Record record) {
        try {
            HttpClient httpclient = new HttpClient();
            PostMethod post = new PostMethod(record.getStr("url"));
            //解决中文乱码问题
            post.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "utf-8");
            
            // 设置调用接口的参数信息
            post.addParameter("servercode", record.getStr("serverCode"));
            post.addParameter("time", record.getStr("time"));
            post.addParameter("sign", record.getStr("sign"));
            post.addParameter("srcnum", record.getStr("srcnum"));
            post.addParameter("desttype", record.getStr("desttype"));
            post.addParameter("dest", record.getStr("dest"));
            post.addParameter("message", record.getStr("message"));
            post.addParameter("messageid", record.getStr("messageid"));
            post.addParameter("method", "send");
            httpclient.executeMethod(post);
            String result = new String(post.getResponseBody(), "utf-8");
            logger.info("服务端返回结果:" + result);
            return result;
        }
        catch (Exception e) {
            e.printStackTrace();
            logger.info("发送请求异常信息:" + e.getMessage() + "=======");
            return "-1";
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值