我有一个网址,其参数之一包含空格字符.如果我使用HttpURLConnection照原样发送,则该参数传递错误.
如果我用手动替换空格,它会按预期工作,因此我想知道是否有一种更干净的方法可以做到,尽管我希望HttpURLConnection能够自动做到这一点.也许我错过了一种方法?
寻找此内容时,我一直碰到不建议使用的URLEncoder.Encode,除了对整个URL进行编码(包括http的://)外,我找不到其他方法来执行我的操作.
有没有干净的方法进行更换?还是应该手动进行?
网址,例如:http://www.domain.com?param1=name‘last& param2 = 2014-31-10 11:40:00
参数1包含’,参数2包含空格和:,但是只有空格引起了问题.这就是为什么我不明白为什么HttpUrlConnection仅对空间如此敏感的原因.
谢谢
解决方法:
尝试这种方式,希望这将帮助您解决问题.
URLEncoder:除字母(‘a’..’z’,’A’..’Z’)和数字(‘0′..’9′)和字符’.’,’-‘,’*’之外的所有字符,“ _”转换为以“%”开头的十六进制值.
在URLEncoder类中有两种方法:
1.encode(String url):API级别1中不推荐使用此方法
String encodedUrl = URLEncoder.encode(url);
2.encode(String url,String charsetName):使用由charsetName命名的字符集对url进行编码.
String encodedUrl = URLEncoder.encode(url,"UTF-8");
如何使用 :
String url ="http://www.domain.com";
String param1 ="?param1=";
Strinf param1value ="name'last";
String param2 ="¶m2=";
Strinf param2value ="2014-31-10 11:40:00";
String encodeUrl = url +param1+ URLEncoder.encode(param1value,"UTF-8")+param2+URLEncoder.encode(param2value,"UTF-8");