最近封装一个接口,需要通过Edittext拿到文本数据,作为字符串参数请求服务器。由于使用的是get请求,所以字符串是加到链接上的。在手里的测试机上都能调通接口,但是在android4.4手机上会出现异常。
找了个4.4的测试机经过排除吧,发现字符参数要通过UrlEncode转码成utf-8,具体方法:
public static String toURLEncoded(String paramString) {
if (paramString == null || paramString.equals("")) {
return "";
}
try
{
String str = new String(paramString.getBytes(), "UTF-8");
str = URLEncoder.encode(str, "UTF-8");
return str;
}
catch (Exception localException)
{
}
return "";
}
由于是get请求,会直接返回400,bad request;如果是post请求,应该是会出现乱码的。这个问题很早之前会注意,低版本手机在取textview或者edittext里面的文本,还有传入字符串数据,需要做转码处理。