前阵子,学习了一下APACHE 的httpclient,感觉httpclient还是比较好用的,就是传输汉字的时候有默认的编码问题。
在使用 httpClient.executeMethod(PostMethod);时,httpclient会调用
protected RequestEntity generateRequestEntity() {
if (!this.params.isEmpty()) {
// Use a ByteArrayRequestEntity instead of a StringRequestEntity.
// This is to avoid potential encoding issues. Form url encoded strings
// are ASCII by definition but the content type may not be. Treating the content
// as bytes allows us to keep the current charset without worrying about how
// this charset will effect the encoding of the form url encoded string.
String content = EncodingUtil.formUrlEncode(getParameters(), getRequestCharSet());
ByteArrayRequestEntity entity = new ByteArrayRequestEntity(
EncodingUtil.getAsciiBytes(content),
FORM_URL_ENCODED_CONTENT_TYPE
);
return entity;
} else {
return super.generateRequestEntity();
}
}
在此时会对内容进行编码。
解决编码的问题可以如下进行
1.使用httpClient.getParams().setContentCharset()
该函数即可对传输的内容进行自己想要的编码。
2.另外,如果想避免编码问题,可以使用流传输
httppost.setRequestEntity(new InputStreamRequestEntity(
inputstream));
使用流传输内容的方法即可避免传输内容时被编码的问题。
使用流传输的时候发现输入的什么,内容就是什么,没有被编码。
分享到:
相关推荐
HttpClient学习笔记 模拟测试浏览器表单提交
6. **连接管理**: HttpClient 内置了连接管理器,可以控制并发连接的数量,自动检测并关闭失效连接,适应多线程应用。 7. **持久连接**:支持HTTP/1.0的KeepAlive和HTTP/1.1的持久连接,提高效率。 8. **直接访问...
HttpClient 特别强调了在多线程环境中的连接管理和性能优化,能够处理代理、SSL/TLS 安全连接、认证以及文件上传等功能。 在使用 HttpClient 之前,可能需要进行一些预备工作。例如,如果你的 JRE 版本是 1.3.* ...
这个强大的工具被广泛应用于各种场景,包括自动化测试、数据抓取、服务间通信等。...通过阅读官方文档和相关的学习笔记(如HttpClient学习笔记.doc),可以进一步深化对HttpClient的理解,掌握其高级特性和最佳实践。
体中获取内容,如 `EntityUtils.toString()` 可以将实体转换为字符串,`EntityUtils.toByteArray()` 转换为字节数组。以下是一些关于 HttpClient ...通过持续学习和实践,可以深入理解和掌握这些知识点,提升开发效率。
1、使用HttpClient发送GET请求: 2、使用HttpClient发送POST请求:和之前的GET类似 3、使用异步HttpClient发送请求,可以在github上找一些别人已经写好的代码,封装度比较高,直接拿来用。 4、多线程下载:使用...
- `HttpClient学习笔记.doc`: 可能包含了关于Apache HttpClient的使用教程,包括如何创建HTTP请求,执行GET和POST操作,以及设置请求头和处理响应等内容。 - `HTTP中Get与Post的区别.doc`: 深入解析HTTP协议中的GET...
Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)于1995年发布。...Java学习笔记涵盖了这些核心知识点,通过深入学习和实践,你可以逐步掌握Java编程,并应用于实际项目开发中。
- **HttpClient学习笔记**:HttpClient是Apache的一个开源项目,用于执行HTTP请求。在与Tomcat交互时,例如在自动化部署或监控场景下,可能会用到HttpClient来发送HTTP请求到Tomcat的管理接口。 - **Tomcat配置文档...
`httpClient笔记.docx`可能是用户或教程作者整理的关于使用HttpClient的笔记或实战案例,可能包括一些常见问题的解决方案,比如处理重定向、处理cookies、上传下载文件、使用HTTPS等。 学习HttpClient时,除了API...
【Java学习笔记详解】 在Java的学习旅程中,基础至关重要。这份“学习笔记 十分有用 java”涵盖了J2SE(Java Standard Edition)的基础知识,旨在帮助读者深入理解这门广泛使用的编程语言。J2SE是Java的核心部分,...
lunece 学习笔记实用知识库分享知识分享 在本文中,我们将从多方面探索 Lucene 和 Solr 相关的知识点,并对其进行详细的分析和解释。 Lucene 和 Solr 的基本概念 Lucene 是一个基于 Java 的搜索引擎库,提供了...
"C#学习笔记-用小量资源即可下载"的主题聚焦于如何在C#中实现资源节省的下载策略,旨在帮助开发者在有限的计算和网络资源下进行高效的文件下载。 C#是一种面向对象的编程语言,其强大的.NET框架提供了丰富的类库,...
"Java学习笔记(javase)"这份资料主要涵盖了Java Standard Edition(Java SE)的基础知识,它是Java平台的核心,为桌面应用和服务器端应用提供了运行环境。这份笔记可能是作者在深入学习Java SE的过程中,对关键...
【Java学习笔记全程详解】 Java作为一种广泛应用于企业级开发、移动应用、大数据处理等领域的编程语言,其学习过程涵盖了许多核心概念和技术。这份"我的Java学习笔记"详细记录了作者在学习Java过程中积累的心得体会...
这套学习笔记全面覆盖了这两个平台的基础知识、核心概念以及高级特性,对于想要深入理解和掌握Mono在Android开发中的应用非常有价值。 首先,我们来了解一下Mono for Android。它是一个.NET开发环境,允许开发者...
在这个“Java客户端服务器程序学习笔记”中,我们将深入探讨这一主题,包括如何设计、实现和交互这两个关键组件。 首先,客户端是用户与系统进行交互的部分,它发送请求到服务器并接收响应。服务器端则处理这些请求...
总的来说,这篇学习笔记涵盖了Android应用中网络通信的基础知识,包括使用WebView加载网页以及借助ImageView和第三方库加载网络图片。理解并熟练掌握这些内容,对于进行Android应用开发至关重要,它能帮助开发者构建...