当我呼叫网络服务时,我传递了该网址中的某些值。
示例:
https://website.com/webserviceName/login?userName=user&password=pass
但如果值有“&”怎么办?在他们中。当我形成这样一个包含'&'项目的网址时此时的url break会返回一个错误代码。我如何解决这个问题。
示例:
https://website.com/webserviceName/login?userName=user&user&password=pass
此网址的问题在于它在第一个'&'
处中断使用URLEncoder.encode(urlXml)
可以解决问题
http://www.tutorialspoint.com/html/html_url_encoding.htm
Thanx everyone
答案 0 :(得分:3)
您必须使用&
encode&符号%26
。因此,您的网址将变为
https://website.com/webserviceName/login?userName=user%26user&password=pass
如果您的用户名未修复且您想使用URLEncoder.encode
作为@SudhanshuUmalkar建议,则应仅对参数进行编码
String url = "https://website.com/webserviceName/login?userName="
+ URLEncoder.encode(userName, "UTF-8") + "&password="
+ URLEncoder.encode(password, "UTF-8");
由于不推荐encode(String)
,您应该使用encode(String, "UTF-8")
或任何字符集。
答案 1 :(得分:2)
使用URLEncoder.encode()方法。
url =“https://website.com/webserviceName/login?” + URLEncoder.encode(“userName = user& user& password = pass”,“UTF-8”);
答案 2 :(得分:0)
我有代码使用文字&符号。您的代码可能会中断,因为您没有提供有效的键值参数对:
https://website.com/webserviceName/login?userName=user&user&password=pass
^ this shouldn't be like this
以下代码适用于制作:
public static final String DATA_URL = "http://www.example.com/sub/folder/api.php?time=%s&lang=%s&action=test";
String.format (API.DATA_URL, "" + now, language)