创建一个包含'&'的网址

时间:2013-03-14 10:09:49

标签: java android url

当我呼叫网络服务时,我传递了该网址中的某些值。

示例:

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

3 个答案:

答案 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)