android 发送GET请求 服务端接收乱码的问题
2016-04-17 18:17
519 查看
在android的编程中常会使用get/post请求,在用get请求的时候数据是直接放在url当中的
例如:
但是在android客户端这样写是拿不到正确的返回数据的。
原因是这样,通过浏览器向服务器发送get请求的时候默认的格式是 iso-8859-1
通过浏览器发送带有中文的个头请求:
这里的
那么客户端向服务器发送get请求的时候如何将数据转码呢?
这里就会用到 URLEncoder.encode( s , String )
该方法包含两个参数:第一个参数: 是需要转码的文字(String 类型)
第二个参数: 是要转成的格式 例如utf-8(String 类型)
这是官方api的用法
该方法在使用时需要try catch 捕获异常;
例如:
http://apicloud.mob.com/v1/weather/query?key=11bef58799140&city=南京
但是在android客户端这样写是拿不到正确的返回数据的。
原因是这样,通过浏览器向服务器发送get请求的时候默认的格式是 iso-8859-1
通过浏览器发送带有中文的个头请求:
http://apicloud.mob.com/v1/weather/query?key=11bef58799140&city=%E5%8D%97%E4%BA%AC
这里的
%E5%8D%97%E4%BA%AC 就是转码后的 南京
那么客户端向服务器发送get请求的时候如何将数据转码呢?
这里就会用到 URLEncoder.encode( s , String )
该方法包含两个参数:第一个参数: 是需要转码的文字(String 类型)
第二个参数: 是要转成的格式 例如utf-8(String 类型)
这是官方api的用法
public static String encode (String s) Added in API level 1 This method was deprecated in API level 1. Use encode(String, String) instead. Equivalent to encode(s, "UTF-8").
该方法在使用时需要try catch 捕获异常;
String city = "南京"; try { city = URLEncoder.encode(city , "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); }
相关文章推荐
- 认清Android框架 MVC,MVP和MVVM
- Android Task任务栈
- Android 多状态按钮ToggleButton
- Android-Tips(实用Android开发技巧)
- Android应用中使用百度地图API定位自己的位置(二)
- Android学习第七篇——ViewPager引导页
- Android GoogleMap suggestion AutoComplete (二)具体实现
- Bitmap的简单特效处理
- androidstudio多个module放在一个目录下
- Android Studio 高级配置
- Android Service使用拾遗[阿里工程师分享]
- Android Service使用拾遗[阿里工程师分享]
- Android中Handler传递消息机制详解
- 消息机制之Handler
- 第四章:android核心组件之SimpleAdapter适配器构造函数的详解(二)
- android插件开发——加载插件
- Android GoogleMap suggestion AutoComplete (一 )申请API key
- Android发送短信界面
- Android Framework概述
- 【Android开发经验】关于ListView中item与控件抢夺焦点的那些事