黑马程序员技术交流社区
标题:
关于httpclient使用post方法提交中文数据的问题
[打印本页]
作者:
fighting
时间:
2013-3-16 19:58
标题:
关于httpclient使用post方法提交中文数据的问题
本帖最后由 fighting 于 2013-3-16 20:03 编辑
在android中经常使用httpclient与网络连接,但是我当我用java app写了一个表单验证时,提交中文数据时出现了问题:
在使用post方式提交时,先对中文进行编码,当在servlet中获取时,tomcat貌似并没有对这些编码进行解码,不知是什么原因?
这是post方法,用于提交数据
//使用httpclient-post的方式提交数据,为什么当请求中有中文时在服务器端取不自动解码呢???
public String httpclientPostToServer(String username, String password){
String info = null;
try {
username = URLEncoder.encode(username, "utf-8");
password = URLEncoder.encode(password, "utf-8");
HttpPost post = new HttpPost(Config.site);
List<BasicNameValuePair> list = new ArrayList<BasicNameValuePair>();
list.add(new BasicNameValuePair("username", username));
list.add(new BasicNameValuePair("password", password));
post.setEntity(new UrlEncodedFormEntity(list, "utf-8"));
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(post);
if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
InputStream is = response.getEntity().getContent();
info = streamToString(is);
}else{
System.out.println("服务器返回异常");
}
} catch (Exception e) {
e.printStackTrace();
}
return info;
}
复制代码
这是servlet
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
//注意编码集的统一
username = new String(username.getBytes("iso-8859-1"), "utf-8");
password = new String(password.getBytes("iso-8859-1"), "utf-8");
// 假定参数不为空
System.out.println("username:" + username + "\npassword:" + password);
if ("川".equals(username) && "123".equals(password)) {
response.getOutputStream().write("登录成功!".getBytes());
} else {
response.getOutputStream().write("登录失败!".getBytes());
}
}
复制代码
问题在代码中也表明了,输出的结果是:
username:%E5%B7%9D
password:123
作者:
HM张超
时间:
2013-3-16 23:24
感觉好像前台的时候你把值就给转了,跟后台没关系
作者:
fighting
时间:
2013-3-18 10:20
shenbeiaia 发表于 2013-3-16 23:24
感觉好像前台的时候你把值就给转了,跟后台没关系
但是当我使用get方式时,同样的代码,后台得到的结果却是正常的
作者:
HM张超
时间:
2013-3-18 15:13
这个跟传输方式没有关系!看看jsp页面的编码格式是什么吧!
前后要统一
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2