HttpClient请求,服务端收到乱码
2015-10-29 16:47
549 查看
在Android开发中,以HttpPost方式向服务器上提交中文数据时,如果没有设置传输数据的编码类型,在服务端获取到的数据就会出现乱码。在涉及不同平台上的应用,我们尽量使用UTF-8编码格式传输中文数据,HttpPost方式传输中文指定编码可以参考以下方法:
/**
* 向服务端提交数据
*/
public void notesubmit(){
......
......
httpClient = new DefaultHttpClient();
post = new HttpPost(url);
List<NameValuePair> pairs = new ArrayList<NameValuePair>();
NameValuePair pair1 = new BasicNameValuePair("title","中文");
NameValuePair pair2 = new BasicNameValuePair("content","中文");
pairs.add(pair1);
pairs.add(pair2);
//以post方式传输数据到服务端
try {
HttpEntity entity = new UrlEncodedFormEntity(pairs,HTTP.UTF_8);//设置编码,防止中午乱码
post = new HttpPost(url);
post.setEntity(entity);
httpClient = new DefaultHttpClient();
HttpResponse response = httpClient.execute(post);
//服务端返回的数据
String data = EntityUtils.toString(response.getEntity());
......
......
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
// 释放连接
httpClient.getConnectionManager().shutdown();
}
}
/**
* 向服务端提交数据
*/
public void notesubmit(){
......
......
httpClient = new DefaultHttpClient();
post = new HttpPost(url);
List<NameValuePair> pairs = new ArrayList<NameValuePair>();
NameValuePair pair1 = new BasicNameValuePair("title","中文");
NameValuePair pair2 = new BasicNameValuePair("content","中文");
pairs.add(pair1);
pairs.add(pair2);
//以post方式传输数据到服务端
try {
HttpEntity entity = new UrlEncodedFormEntity(pairs,HTTP.UTF_8);//设置编码,防止中午乱码
post = new HttpPost(url);
post.setEntity(entity);
httpClient = new DefaultHttpClient();
HttpResponse response = httpClient.execute(post);
//服务端返回的数据
String data = EntityUtils.toString(response.getEntity());
......
......
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
// 释放连接
httpClient.getConnectionManager().shutdown();
}
}
相关文章推荐
- net-snmp配置文件snmp.conf
- Android中实现进入App之后检查网络状态
- 简单区分Vmware的三种网络连接模式(bridged、NAT、host-only)
- HTTP报文内的HTTP信息之获取部分内容的范围请求
- 神经网络模型符号解释!!!蛮重要的,记不住的可以参考下。
- 网络爬虫-理解
- IOS Android Tomcat SSL双向认证HTTPS访问
- 关于Xutils网络访问
- A、B、C、D、E类网络地址
- 乐观锁与悲观锁 转自http://www.cnblogs.com/guyufei/archive/2011/01/10/1931632.html
- c#_HttpClient
- 配置ssl访问(https)
- c#_HttpClient
- 理解openstack网络
- iOS上传文件,有关http上传协议-RFC1867
- 网络常见的组播地址 解释
- HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的解决办法
- iOS网络通信-NSURLConnection
- MATLAB 神经网络训练参数解释
- HTTP报文内的HTTP信息之发送多种数据的多部分对象集合