java httpclient 编码_HttpClient_002_中文乱码、HttpClient中文乱码透析、总结

package com.west.test.httpclient;

import java.io.IOException;

import java.io.PrintWriter;

import java.io.UnsupportedEncodingException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.httpclient.HttpClient;

import org.apache.commons.httpclient.HttpStatus;

import org.apache.commons.httpclient.NameValuePair;

import org.apache.commons.httpclient.methods.PostMethod;

import javax.servlet.ServletException;public classPostServlet extends HttpServlet {

@Overrideprotected voiddoPost(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

System.out.println("========httpClient_001 PostServlet start=========");

System.out.println("httpClient_001:doPost方式提交");

HttpClient httpClient= newHttpClient();

PostMethod method= newPostMethod(URLUtil.POST_CONTENT);//解决中文乱码(设置:"我方"HttpClient提交、解析所用码)

method.getParams().setContentCharset("utf-8");

String charset=method.getParams().getContentCharset();

NameValuePair name= new NameValuePair("name", "张三");

NameValuePair password= new NameValuePair("password","password:123321");

method.setRequestBody(newNameValuePair[] { name, password });

String rt= "";try{int status =httpClient.executeMethod(method);if (status ==HttpStatus.SC_OK) {

rt=method.getResponseBodyAsString();

System.out.println("httpClient_001得到:" +rt);

codeTest(rt,charset);

}

}catch(Exception e) {

e.printStackTrace();

System.out.println("网络连接失败,请联系管理员!");

}//释放HttpClient资源

method.releaseConnection();

outMessage(response, rt);

}protected voiddoGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

System.out.println("httpClient_001:doGet方式提交");

doPost(request, response);

}public voidoutMessage(HttpServletResponse response, String message) {try{//解决"界面"中文乱码(设置:"我方"提交所用码、"对方"解析所用码)

response.setContentType("text/html;charset=utf-8");

PrintWriterout =response.getWriter();out.print(message);out.close();

}catch(IOException e) {

e.printStackTrace();

}

}public voidcodeTest(String rt ,String charset) throws Exception {

System.out.println("得到的是:"+charset);byte[] btr=rt.getBytes(charset);

String rt01= new String(btr, "iso-8859-1");

System.out.println("String(btr,'iso-8859-1')转码01:" +rt01);

String rt02= new String(btr, "utf-8");

System.out.println("String(btr,'utf-8')转码02:" +rt02);

String rt03= new String(rt01.getBytes("iso-8859-1"), "utf-8");

System.out.println(rt03);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值