返回顶部
首页 > 资讯 > 后端开发 > JAVA >java中http请求,记得加字符集 UTF-8,StringEntity
  • 317
分享到

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

http网络字符集报错请求 2023-10-19 06:10:14 317人浏览 薄情痞子
摘要

Http请求经常会遇到一些奇怪的问题,例如发送请求失败,或者response出现问题,或者参数中带了url调接口失败,调用微信接口失败,调用Nginx转发失败,等等。 但用postman调用不会有问题。 这说明参数本身没有问题,服务器也没有

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);    }}

来源地址:https://blog.csdn.net/u011149152/article/details/131714272

--结束END--

本文标题: java中http请求,记得加字符集 UTF-8,StringEntity

本文链接: https://lsjlt.com/news/432076.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作