java中http请求,记得加字符集 UTF-8,StringEntity

news/2024/11/28 4:41:12/

http请求经常会遇到一些奇怪的问题,例如发送请求失败,或者response出现问题,或者参数中带了url调接口失败,调用微信接口失败,调用nginx转发失败,等等。

但用postman调用不会有问题。

这说明参数本身没有问题,服务器也没有问题,是客户端的问题。在你的代码里面,客户端就是你调用的那些发http的包。例如httpclient。

通常都是body没有设置字符集。

例如

HttpPost httpPost = new HttpPost(url);
StringEntity body = new StringEntity(jsonStr, "UTF-8");
httpPost.setEntity(body);

UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList,"UTF-8");
httpPost.setEntity(entity);

简单说就是要给特殊字符编码。body中的那些特殊字符需要编码。有时是用

URLEncoder.encode(bodyStr, "UTF-8");

例如StringEntity的源码:他将传进来的body内容转成byte数组。所以就无需URLEncoder。

但这里charset默认是ISO8859-1,所以需要指定UTF-8。

public class StringEntity extends AbstractHttpEntity implements Cloneable {protected final byte[] content;public StringEntity(String string, ContentType contentType){Charset charset = contentType != null ? contentType.getCharset() : null;this.content = string.getBytes(charset);}
}


http://www.ppmy.cn/news/865267.html

相关文章

趋势病毒软件卸载攻略

具体步骤: 1、首先将电bai脑启动到安du全模式(在电脑开机的时候zhi,出来windows图标之前dao按F8),有很多选项,选择安全模式。 2、打开注册表工具,winr,然后输入regedit回车&#xff…

趋势科技防毒墙—控管中心

趋势科技防毒墙—控管中心 作者: 转贴自: 趋势科技的Control Manager 为企业网络的防毒策略提供了强大的集中控管能力。因为可以从单一地点来进行软件的管理、监控和部署,所以企业能够更有效地管理整个企业的防毒策略。Control Ma…

趋势科技防毒墙-网络版(OfficeScan)客户端管理工具

一个用vc6写的程序;公司里安装了officescan的朋友可能有用;本软件针对趋势防毒墙网络版Officescan客户端开发的管理员辅助工具,可以清除趋势防毒墙客户端的退出或者卸载密码,也可以清除Officescan的未上报病毒日志。本程序在WinXP…

怎样关闭域用户电脑中的趋势杀毒软件

趋势杀毒,本来是个杀毒软件,我却要杀掉他。为什么呢? 1 占用系统资源,动不动就吃CPU,尤其是升级的时候; 2 定时杀毒时,机器几乎无法操作; 3 误报误杀,keygen.exe、md5.ex…

中国防毒软件市场深度研究分析报告

【报告篇幅】:116 【报告图表数】:164 【报告出版时间】:2021年1月 报告摘要 2019年中国防毒软件市场规模达到了XX亿元,预计2026年将达到XX亿元,年复合增长率(CAGR)为XX%。 本文研究中国市场防毒软件现状及未来发展…

趋势科技防毒墙

趋势科技的Control Manager 为企业网络的防毒策略提供了强大的集中控管能力。因为可以从单一地点来进行软件的管理、监控和部署,所以企业能够更有效地管理整个企业的防毒策略。Control Manager 的设计旨在能够快速部署、积极防治,主动遏止新病毒&#xf…

趋势网络防毒墙

趋势网络版防火墙10.0版  包括注册码和更新病毒库 转载于:https://blog.51cto.com/amcto111/427458

全面罩防毒面具市场调研

正文目录 1 全面罩防毒面具市场概述 1.1 全面罩防毒面具行业概述及统计范围 1.2 按照不同产品类型,全面罩防毒面具主要可以分为如下几个类别 1.2.1 不同产品类型全面罩防毒面具增长趋势2017 VS 2021 VS 2028 1.2.2 一次性的 1.2.3…