HttpClient中文乱码的解决方案

本文详细描述了在CRL openhouse活动中,为DCM项目提供数据源时,通过使用HttpClient进行HTTP请求的实现过程。包括客户端代码实现、服务器端接收处理请求数据的逻辑,并解决了编码方式不匹配导致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

过两天CRL要搞一个open house,据说是要把所有TEAM的项目都给摆出来演示,我要给DCM这个项目提供数据源,丫们不想用WEB SERVICES,要用HTTP来解决,靠,害我又花了这么多时间帮丫们解决这个问题

客户端代码:

try {

          HttpClient client = new HttpClient();

             client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"utf-8");

             PostMethod mPost = new PostMethod(DCMServer);

             NameValuePair[] data = { new NameValuePair("aim",in.getSender()),new NameValuePair("message", messageNr),new NameValuePair("time",new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date())) };

             // 将表单的值放入postMethod中

             mPost.setRequestBody(data);

             int statusCode = client.executeMethod(mPost);

             //System.out.println(mPost.getResponseCharSet());

             System.out.println(mPost.getResponseBodyAsString());

             //释放资源

             mPost.releaseConnection();

            } catch (FileNotFoundException e) {

             // TODO 自动生成 catch 块

             e.printStackTrace();

            } catch (HttpException e) {

             // TODO 自动生成 catch 块

             e.printStackTrace();

            } catch (IOException e) {

             // TODO 自动生成 catch 块

             e.printStackTrace();

            }

服务器端:

String aim=request.getParameter("aim");

  String message=new String(request.getParameter("message").getBytes("ISO-8859-1"),"utf-8");

 

我已经试过了,只要两边编码方式相同,把utf-8改为gbk或gb2312都行

httpclient4 中文版帮助文档,最新官方版翻译版 前言 超文本传输协议(HTTP)也许是当今互联网上使用的最重要的协议了。Web服务,有网络功能的设备和网络计算的发展,都持续扩展了HTTP协议的角色,超越了用户使用的Web浏览器范畴,同时,也增加了需要HTTP协议支持的应用程序的数量。 尽管java.net包提供了基本通过HTTP访问资源的功能,但它没有提供全面的灵活性和其它很多应用程序需要的功能。HttpClient就是寻求弥补这项空白的组件,通过提供一个有效的,保持更新的,功能丰富的软件包来实现客户端最新的HTTP标准和建议。 为扩展而设计,同时为基本的HTTP协议提供强大的支持,HttpClient组件也许就是构建HTTP客户端应用程序,比如web浏览器,web服务端,利用或扩展HTTP协议进行分布式通信的系统的开发人员的关注点。 1. HttpClient的范围 基于HttpCore[http://hc.apache.org/httpcomponents-core/index.html]的客户端HTTP运输实现库 基于经典(阻塞)I/O 内容无关 2. 什么是HttpClient不能做的 HttpClient 不是一个浏览器。它是一个客户端的HTTP通信实现库。HttpClient的目标是发送和接收HTTP报文。HttpClient不会去缓存内容,执行 嵌入在HTML页面中的javascript代码,猜测内容类型,重新格式化请求/重定向URI,或者其它和HTTP运输无关的功能。 第一章 基础 1.1 执行请求 ......
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值