`

httpClient中文乱码问题解决(wap提交)

    博客分类:
  • Java
阅读更多
package pro;

import java.io.IOException;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;

public class simulateWebAction {

    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        String url = "http://wap.aibang.com:80/search.jsp;jsessionid=acITUg0h_0y8?city=%E8%8B%8F%E5%B7%9E&as=3000&p=1&pn=5&ip=58.211.115.116&s=sbiz";
        PostMethod postMethod = new UTF8PostMethod(url);
        StringBuilder origin = new StringBuilder();
        origin.setLength(0);
        
        HttpClient httpClient = new HttpClient();
//        getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler()); 
        
        NameValuePair a = new NameValuePair("a","东港");
        NameValuePair q = new NameValuePair("q","餐厅");
        NameValuePair[] param = new NameValuePair[]{a,q};
        
        postMethod.setRequestBody(param);
        try {
//            执行getMethod
            int statusCode = httpClient.executeMethod(postMethod);
            if (statusCode != HttpStatus.SC_OK) {
                System.err.println("Method failed: "+ postMethod.getStatusLine());
            }else{
//                读内容
                System.out.println(postMethod.getResponseBodyAsString());
            }
            
            } catch (HttpException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                postMethod.releaseConnection();
            }    
    }
    
    public static class UTF8PostMethod extends PostMethod{
        public UTF8PostMethod(String url){
            super(url);
        }
        @Override
        public String getRequestCharSet() {
            //return super.getRequestCharSet();
            return "UTF-8";
        }
    }

 我在尝试着直接将中文改变为utf-8的字符串直接写入,失败后!以为是网络传输中应该是iso-8859-1方式传输的,然后将中文转为该编码格式,还是失败后,看httpclient源代码发现:重写postmethod中的getrequestcharset()方法,虽然源代码中该方法动态的设置编码格式,但是好像并没有很好的执行!在重写后,问题解决!

分享到:
评论

相关推荐

    彻底解决httpClient乱码问题

    本文将深入探讨如何使用HttpClient来彻底解决乱码问题。 HttpClient是一个功能强大的HTTP客户端,支持多种HTTP协议版本,包括GET、POST等请求方法,以及重试、连接管理等功能。在处理中文字符时,由于编码不一致...

    解决HttpClient中文乱码问题jar文件

    以下是一些解决HttpClient中文乱码问题的关键知识点: 1. **设置字符编码**:在发送HTTP请求时,我们需要确保请求头中的`Content-Type`字段指定了正确的字符集,如`application/x-www-form-urlencoded; charset=UTF...

    HttpClient、乱码解决:实例

    4. 自定义解码:如果以上方式无法解决问题,可以自定义解码逻辑,如使用`InputStreamReader`和`BufferedReader`手动读取字节流并指定字符集。 四、示例代码 以下是一个简单的使用HttpClient发送GET请求并处理乱码的...

    httpclient4上传文件中文乱码问题解决办法代码示例

    服务器端自己写,本示例为客户端代码,可以解决httpClient4乱码问题,是替代修改源码的最佳写法。

    HttpClient4.2.5上传文件,无中文文件名乱码问题

    HttpClient4.2.5实现文件上传,无中文文件名乱码问题。亲测无问题。有问题可吐槽!

    android客户端向服务器提交请求的中文乱码问题

    在Android客户端向服务器提交请求时,遇到中文乱码问题是一个常见的困扰。这通常是由于编码格式不一致或处理不当导致的。以下将详细解释这个问题的原因、影响以及如何解决。 首先,我们要明白字符编码的基本原理。...

    使用httpclient解决跨域问题

    我使用的是httpClient 进行内部转发 我们在A的服务器上,将前台的文件流,通过httpClient传输到B的服务器上(B的服务器通过控制层接受A传输的文件流,让后保存在B的服务器上。返回一个json结果)

    使用httpclient模拟表单提交

    本篇文章将深入探讨如何使用HttpClient来模拟表单提交。 表单提交通常是用户在网页上填写信息后点击提交按钮,数据通过HTTP请求发送到服务器的过程。HttpClient为我们提供了模拟这一过程的能力,无论是GET还是POST...

    httpclient ssl 相关问题解决资料

    为了解决这个问题,我们需要配置HttpClient以信任所有证书,即使它们不是由已知的权威机构颁发的。 首先,我们需要创建一个自定义的`X509TrustManager`,它会忽略证书验证。这是一个简单的实现: ```java X509...

    解决了中文乱码的http的get和post请求demo

    总的来说,解决HTTP请求中的中文乱码问题,核心在于正确地设置编码格式,并在发送请求前对中文数据进行编码。无论是GET还是POST请求,都需要确保客户端和服务器之间对字符编码的一致理解。通过阅读提供的文档和示例...

    HttpClient中文文档,快速开发

    这个标题"HttpClient中文文档,快速开发"表明我们有了一份关于HttpClient的中文版使用指南,对于快速理解和应用HttpClient进行开发来说非常有价值。 HttpClient允许开发者执行各种HTTP方法,如GET、POST、PUT、...

    java中文乱码解决之道(8)解决URL中文乱码问题Jav

    本文将深入探讨如何在Java中有效地解决URL中文乱码问题。 首先,我们需要理解URL编码的原理。URL编码遵循RFC 3986标准,它规定了在URL中非ASCII字符应被转换为百分号编码形式(%xy),其中xy是该字符的UTF-8编码的...

    java动态提交网站httpclient

    本篇文章将深入探讨如何使用Java的HttpClient库来动态提交网站数据。 首先,我们需要理解HTTP协议的基本概念。HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议,用于从Web服务器传输超文本文档到客户端...

    httpclient测试登录并提交表单功能

    ### httpclient 测试登录并提交表单功能 #### 概述 本文将详细介绍如何使用Apache HttpClient库进行模拟登录以及提交表单数据的操作。通过一个具体的示例程序来演示这一过程,帮助读者理解整个流程。 #### 使用...

    httpclient-4.5.3中文版文档,很实用

    10. **国际化支持**:如标题所示,HttpClient 4.5.3提供了中文版文档,便于中国开发者理解和使用。 在使用HttpClient时,开发者需要注意配置连接管理器、设置合适的超时、处理重定向和重试、以及选择合适的认证方式...

    httpclient-4.2.5-API文档-中文版.zip

    标签:apache、httpcomponents、httpclient、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明...

    乱码终极解决办法java实现

    对于给定的"解决乱码终极办法"压缩包文件,很可能是包含了一些示例代码或工具,帮助开发者快速解决特定场景下的乱码问题。如果遇到具体问题,可以参考这些资源,结合本文的知识点,来找到最合适的解决方案。

    httpclient-4.5.3 api 中文版

    HttpClient 4.5.3的文档(API中文版)将详细介绍以上及更多功能,帮助开发者深入理解和使用这个库,创建高效、可靠的HTTP客户端应用程序。通过熟练掌握HttpClient,开发者可以构建出适应各种网络环境和需求的高质量...

    以httpclient方式提交数据

    本文将深入探讨如何使用HttpClient来提交数据,以及这两种方法的基本原理和实际应用。 1. **HttpClient简介** Apache HttpClient是一个开源项目,它提供了一个灵活且功能丰富的API,用于执行HTTP请求和处理响应。...

Global site tag (gtag.js) - Google Analytics