java-具有包含空格的URL的HttpURLConnection

我有一个网址,其参数之一包含空格字符.如果我使用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 ="&param2=";
Strinf param2value ="2014-31-10 11:40:00";
String encodeUrl = url +param1+ URLEncoder.encode(param1value,"UTF-8")+param2+URLEncoder.encode(param2value,"UTF-8");
上一篇:ASP.Net Web API 输出缓存 转载 -- Output caching in ASP.NET Web API


下一篇:如何使用HttpURLConnection等待Java中的Expect 100-continue响应