Amo*_*mos 4 java url android httpurlconnection
我有一个网址,其中一个参数包含空格字符.如果我按原样发送,使用HttpURLConnection,这个参数错误地传递.
如果我手动用%20替换空格,它正在按预期工作,所以我想知道是否有更干净的方法这样做,虽然我希望HttpURLConnection将自动执行.也许有一种我错过的方式?
在寻找这个时,我不断碰到不推荐使用的URLEncoder.Encode,除了对整个URL进行编码外,我找不到任何其他办法来做我所做的事情,包括http的://.
是否有一种干净的方法来进行更换,还是应该手动进行?
url例如:http://www.domain.com?param1 = name'last¶m2 = 2014-31-10 11:40:00 param 1包含'和param2包含空格和:但只有空格才会出问题.这就是为什么我不明白为什么HttpUrlConnection只对空间如此敏感.
谢谢
试试这种方式,希望这可以帮助您解决问题.
URLEncoder:所有字符除了字母('a'..'z','A'..'Z')和数字('0'...'9')和字符'.',' - ','*' ,'_'被转换为'%'前面的十六进制值.
在URLEncoder类中有两种方法:
1.encode(String url):此方法在API级别1中已弃用
String encodedUrl = URLEncoder.encode(url);
Run Code Online (Sandbox Code Playgroud)
2.encode(String url,String charsetName):使用charsetName命名的Charset对url进行编码.
String encodedUrl = URLEncoder.encode(url,"UTF-8");
Run Code Online (Sandbox Code Playgroud)
如何使用 :
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");
Run Code Online (Sandbox Code Playgroud)
您可以使用
String oldurl="http://pairdroid.com/whatsapp.php?a=rajesh saini";
String newurl=oldurl.replaceAll(" ","%20");
URL url = new URL(newurl);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12430 次 |
| 最近记录: |