首页 » 网站建设 » apachephp中文乱码技巧_坑apache的httpclient中文乱码解决

apachephp中文乱码技巧_坑apache的httpclient中文乱码解决

访客 2024-11-08 0

扫一扫用手机浏览

文章目录 [+]

一次次检讨自己的代码,确实没有什么问题。
眼看着交工的dead line要到了,没办法。
赶紧把以前的一份用java原生的HttpUrlConnection发送POST要求的代码拿来改了改,测试成功。

但是心里以为太奇怪,没道理httpclient不好使啊。

apachephp中文乱码技巧_坑apache的httpclient中文乱码解决

我倒要看看他们发出的包到底有什么不一样。

apachephp中文乱码技巧_坑apache的httpclient中文乱码解决
(图片来自网络侵删)
利用Fiddler抓包

抓包工具我这边利用的是fiddler。
关于fiddler的基本操作这里就不讲了。

利用postman的要求包:

对代码进行抓包。
这里有点操作须要讲讲了。

首先看下你的抓包工具监听的端口是啥,默认是8888.

然后须要对代码进行一些改造。
fiddler可以方便的抓取浏览器,操作系统的http要求,但是我们在代码里发出的http,fiddler是抓不到的。
须要在代码里设置代理。

java HttpUrlConnection的要求包:

设置代理的代码:

Proxyproxy=newProxy(java.net.Proxy.Type.HTTP, newInetSocketAddress("127.0.0.1",8888));URLrealUrl=newURL(url);HttpURLConnectionurlConnection=(HttpURLConnection)realUrl.openConnection(proxy);

利用apache commons 的HttpClient

设置代理的代码:

//设置代理IP、端口、协议(请分别更换)HttpHost proxy = new HttpHost("127.0.0.1", 8888, "http");//把代理设置到要求配置RequestConfig defaultRequestConfig = RequestConfig.custom() .setProxy(proxy) .build();CloseableHttpClient client = HttpClients.custom().setDefaultRequestConfig(defaultRequestConfig).build();

通过抓包,创造了问题的根源原来是中文乱码。
又是编码问题。

问题办理:

通过自定义一个contentType

ContentTypecontentType=ContentType.create("text/plain",Charset.forName("UTF-8"));

然后在addTextBody时,指明利用自定义的这个contentType

builder.addTextBody(entry.getKey(), entry.getValue(), ContentType.TEXT_PLAIN);

测试,好了

text/plain和一个ContentType.TEXT_PLAIN很像啊,

改成ContentType.TEXT_PLAIN试试,创造也弗成。
我们来比拟下:

ContentType.create("text/plain", Charset.forName("UTF-8"));

ContentType TEXT_PLAIN = create("text/plain", Consts.ISO_8859_1);

末了创造是编码格式的问题。

一句话,记住:通过httpClient发送form表单中有中文的,要设置编码格式为ContentType.create("text/plain", Charset.forName("UTF-8"));

详细源码可查阅"大众年夜众号:技能条记与开源分享

相关文章

PHP实现文字转图片的代码与应用

图片处理技术在各个领域得到了广泛应用。在PHP编程中,文字转图片功能同样具有很高的实用价值。本文将针对PHP实现文字转图片的代码进...

网站建设 2025-03-02 阅读1 评论0

NAN0017探索新型纳米材料的奥秘与应用

纳米技术作为一门新兴的交叉学科,近年来在材料科学、生物医学、电子工程等领域取得了举世瞩目的成果。其中,NAN0017作为一种新型纳...

网站建设 2025-03-02 阅读1 评论0

L26368XO代码其背后的创新与突破

编程语言在各个领域发挥着越来越重要的作用。在众多编程语言中,L26368XO代码以其独特的优势,成为了业界关注的焦点。本文将深入剖...

网站建设 2025-03-02 阅读1 评论0

HTML字体背景打造个化网页设计的关键元素

网页设计已经成为现代网络传播的重要手段。在众多网页设计元素中,字体和背景的搭配尤为关键。本文将从HTML字体背景设置的角度,探讨其...

网站建设 2025-03-02 阅读1 评论0