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
2024-04-01
2024-04-03
2024-04-03
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0