Android非法网址错误......但是什么是非法的?

时间:2012-11-28 15:41:03

标签: android

我使用以下代码构造一个URL:

String login = rootActivity.getString(R.string.url_authentication);
login = login + "user=" + mySharedPreferences.getString("username", "invalid") + "&" + "key=" + mySharedPreferences.getString("key", "invalid");
login = login.toLowerCase(Locale.US);
System.out.println("Logging in at " + login);
new HttpConnection(handler).get(login);

就我所见,URL是有效的,但是HttpConnection失败,因为在&符号的索引处URL中存在非法字符。真正令我印象深刻的是,该应用程序安装量介于1,000到5,000之间,我们在过去一年中共有两个报告 - 使用三星设备的美国用户,所以我怀疑这是一个字符编码问题。

3 个答案:

答案 0 :(得分:1)

不知道登录是什么,但最后是否有问号?如果你不喜欢www.example.comuser =“something”& key =“somethingElse”那么那就行不通了。

答案 1 :(得分:1)

拥有原始& (amplisand)会导致错误,你应该编码你的特殊字符。

这样做:

 String login = URLEncoder.encode(login);

http://developer.android.com/reference/java/net/URLEncoder.html#encode(java.lang.String)

答案 2 :(得分:1)

不要忘记urlEncode您的参数。

login = login + "user=" + URLEncoder.encode( mySharedPreferences.getString("username", "invalid") ) + "&" + "key=" + URLEncoder.encode( mySharedPreferences.getString("key", "invalid") );