`
litxuf
  • 浏览: 122401 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

httpclient 中文乱码的解决方案

    博客分类:
  • java
阅读更多

最近写个httpclient post的方法如下

 

public static void sendData(String url, String value[], String key[])
			throws IOException {
		HttpClient client = new HttpClient();
		// 设置代理服务器地址和端口
		 client.getHostConfiguration().setProxy("172.17.18.80",8080);
		// client.getHostConfiguration().setHost(host, port, "http");
		PostMethod postMethod = new PostMethod(url);
		NameValuePair p1 = new NameValuePair(key[0], value[0]);
		NameValuePair p2 = new NameValuePair(key[1], value[1]);

		postMethod.setRequestBody(new NameValuePair[] { p1, p2 });
		postMethod.setRequestHeader("Content-Type", "text/html;charset=gb2312");
		// 使用POST方式提交数据
		client.executeMethod(postMethod);
		// 打印服务器返回的状态
		logger.info("服务器返回的状态=" + postMethod.getStatusLine());
		// 打印结果页面
		String response = new String(postMethod.getResponseBodyAsString()
				.getBytes("gb2312"));
		// 打印返回的信息
		logger.info("返回的信息=" + response);
		// 释放连接
		postMethod.releaseConnection();
	}

 

 使用 postMethod.setRequestHeader("Content-Type", "text/html;charset=gb2312");  客户端接受的值是个null

 后改成  postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "gb2312"); 问题解决 很是奇怪

 

完整代码如下

public static void sendData(String url, String value[], String key[])
			throws IOException {
		HttpClient client = new HttpClient();
		// 设置代理服务器地址和端口
		// client.getHostConfiguration().setProxy("172.17.18.80",8080);
		// client.getHostConfiguration().setHost(host, port, "http");
		PostMethod postMethod = new PostMethod(url);
		postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "gb2312");
		NameValuePair p1 = new NameValuePair(key[0], value[0]);
		NameValuePair p2 = new NameValuePair(key[1], value[1]);

		postMethod.setRequestBody(new NameValuePair[] { p1, p2 });
		// 使用POST方式提交数据
		client.executeMethod(postMethod);
		// 打印服务器返回的状态
		logger.info("服务器返回的状态=" + postMethod.getStatusLine());
		// 打印结果页面
		String response = new String(postMethod.getResponseBodyAsString()
				.getBytes("gb2312"));
		// 打印返回的信息
		logger.info("返回的信息=" + response);
		// 释放连接
		postMethod.releaseConnection();
	}

 

分享到:
评论
3 楼 zczjdyj123 2013-07-24  
大神啊,我在tomcat定是任务里面抓取新闻,这种方式实现不了,需要以字节流就收,然后转u8,你的文章写的不错。
2 楼 zczjdyj123 2013-07-24  
str=new String(str.getBytes(),"utf-8");
1 楼 lengyueheiying 2011-08-31  
我注册登录就是为了感谢你,你帮我解决了我2天没有搞定的问题

谢谢,发现重写PostMethod方法的getRequestCharSet是如此给力,哈哈,大牛啊,O(∩_∩)O谢谢

相关推荐

    彻底解决httpClient乱码问题

    以下是一些关键的知识点和解决方案: 1. **字符编码设置**:HttpClient默认可能不会自动处理服务器返回的字符集,因此需要明确指定编码。在发送请求时,可以使用`EntityUtils.toString(entity, "UTF-8")`来指定解码...

    乱码终极解决办法java实现

    本文将详细讲解如何使用Java来实现乱码的终极解决方案。 首先,我们需要理解乱码产生的根本原因。乱码通常是由于字符集(Charset)不匹配导致的。字符集是一种规定字符如何用二进制表示的标准,如ASCII、GBK、UTF-8...

    页面get请求 中文参数方法乱码问题的快速解决方法

    然而,当GET请求的参数包含中文字符时,由于编码格式不一致或者处理不当,可能会出现中文乱码的问题。本篇文章将详细介绍如何快速解决这一问题。...希望这个快速解决方案能帮助你在遇到类似问题时快速找到解决之道。

    HttpClient以及获取页面内容应用

    8. 便携可靠的套接字工厂使它更容易的使用第三方解决方案。 9. 连接管理器支持多线程应用。支持设置最大连接数,同时支持设置每个主机的最大连接数,发现并关闭过期的连接。 10. 自动处理Set-Cookie中的Cookie。 11....

    mysql.rar_JSP+Mysql_中文乱码

    以下是对这个问题的详细解释和解决方案。 首先,我们要理解中文乱码产生的原因。在JSP和MySQL中,数据的编码格式不一致或者没有正确设置编码会导致乱码。JSP页面的编码、HTTP请求的编码、MySQL数据库的编码以及连接...

    Android中HTTP请求中文乱码解决办法

    在本篇文章中,我们将探讨如何解决Android中HTTP请求中文乱码的常见问题,并通过一个具体的例子来说明解决方案。 首先,我们要明白HTTP请求中可能出现乱码的原因。当发送带有中文字符的HTTP请求时,数据需要正确地...

    HttpClient学习笔记

    六、常见问题与解决方案 1. **连接关闭问题**:当HttpClient的连接管理策略不当,可能导致过多的打开连接,需合理设置连接池大小和超时时间。 2. **SSL握手异常**:可能是证书不信任或未导入,需要配置TrustManager...

    解决网爬工具爬取页面信息出现乱码的问题_asp.net技巧.doc

    本文将详细介绍如何解决这个问题,并提供相关的解决方案。 首先,我们需要理解网页编码的基本原理。网页的编码通常由两个方面决定:HTTP响应头中的`Content-Type`字段和HTML文档内部的`meta`标签。`Content-Type`中...

    封装一个类搞定90%安卓客户端与服务器端交互

    本实例封装了一个处理安卓客户端与服务器端交互的几个方法,对于中文乱码问题本实例也找到了解决方案.本例可以处理的场景如下: 1.与服务器端交互json数据. 2.Get方式与服务器端交互数据. 3.Post方式与服务器端交互...

    nutch无法下载中文文件的问题

    在描述中提到的 "nutch无法下载中文文件的问题[解决] - luoleicn的专栏 - 博客频道 - CSDN_NET.mht" 文件,可能是博主 Luoleicn 分享的一个具体解决方案。MHT 文件是一种单一文件的网页归档格式,包含了网页的 ...

    API自动化解决方案[开源项目]基于RestAssured的接口自动化测试框架完美版.docx

    - 在设置项目编码时,请确保使用UTF-8,避免中文字符出现乱码。 - 配置好所有必要的环境变量和路径,确保构建和测试过程能够顺利进行。 - 在开发过程中保持良好的代码注释习惯,方便后续的维护和扩展。 总之,该...

    scrumworks 6 安装步骤

    ### ScrumWorks 6 安装与中文乱码解决方案 #### ScrumWorks 6 安装步骤详述 **步骤一:下载与准备** - **官网下载**:首先,访问ScrumWorks官方网站(http://www.open.collab.net/downloads/scrumworks.html),...

    java实现新浪微博抓取关注和粉丝的课程设计报告

    - 解决方案:通过分析新浪的加密算法,并使用第三方工具如HTTPFox来捕获加密过程中的JS脚本,成功获取Cookie。 2. **通过HttpMethod请求网址之后返回内容出现乱码** - 解决方案:将Eclipse项目的编码设置为GBK,...

    httpmime-4.3.6.rar

    HTTPMIME是Apache HttpClient...如果你遇到中文文件名乱码或版本冲突问题,升级到这个版本将是一个有效的解决方案。通过理解和掌握HTTPMIME的API,开发者能够更便捷地构建和处理HTTP请求,提升应用的功能和用户体验。

    java实现模拟登录网站最全的资料

    7. **论坛资源**:`ITeye论坛.mht`文件可能包含了关于HttpClient的使用讨论,如`HTTPClient模拟登陆人人网`,这通常提供了实际项目中的示例和遇到的问题解决方案。 8. **MHT文件**:MHT是一种单一文件的网页存档...

    android移动互联笔记

    以下是一些解决方案: - **统一编码**:确保所有参与方都使用相同的字符编码,如UTF-8。 - **显式指定编码**:在处理字符串时明确指定字符编码,例如在使用`InputStreamReader`或`OutputStreamWriter`时设置编码。 ...

    C#文件下载以及相关问题的处理

    ### 二、文件下载过程中遇到的问题及解决方案 #### 1. 文件名编码问题 当下载的文件名包含非ASCII字符时,可能会出现乱码问题。解决办法是正确解析HTTP响应头中的`Content-Disposition`字段。 **示例代码:** ``...

    音乐播放器YOYOPlayer1.2源码

    这些库文件有助于扩展JAVA标准库的功能,提供特定领域的高效解决方案。 "ReadMe.txt"文件通常包含项目的基本信息、安装指南或使用说明。开发者可能会在这里找到如何编译、运行或调试源码的步骤,以及任何特定的环境...

    commons相关库.zip

    这四个库在Java开发中扮演着重要角色,无论是处理网络通信、文件操作还是编码解码问题,都能找到相应的解决方案。使用这些库可以显著提高开发效率,同时保证代码的质量和稳定性。在实际项目中,可以根据需求选择合适...

    jt12日常笔记

    为了保证数据一致性,可以考虑使用如PhxSQL这样的高可用集群解决方案。 MySQL的安全设置,包括设置强密码,以及允许远程访问MySQL服务器,通常需要开放3306端口。在Linux环境下构建数据库时,需要注意防止中文乱码...

Global site tag (gtag.js) - Google Analytics