我正在尝试从远程服务器获取json数据。一旦两个字符串传递我的应用程序被强制停止,一切正常。如何编码网址以防止此错误
这是我如何尝试获取json值
jsonobject = JSONfunctions.getJSONfromURL("http://www.example.com/index.php?sutyp="+sutyp);
如果我通过sutyp传递“Hello”没有错误但是如果我通过“Hello World”app力停止
如何对网址进行编码以防止这种情况发生。任何建议都会有很大的帮助
答案 0 :(得分:1)
您可以使用URLEncoder.encode(string, "utf-8")
例如
String url = String.format("http://www.example.com/index.php?sutyp=%s", sutyp);
jsonobject = JSONfunctions.getJSONfromURL(URLEncoder.encode(url, "utf-8");
以下是对documentation
的引用答案 1 :(得分:1)
您需要使用android.net.Uri
类:
String url = Uri.parse("http://www.example.com/index.php")
.buildUpon()
.appendQueryParameter("sutyp", sutyp)
.build()
.toString();
jsonobject = JSONfunctions.getJSONfromURL(url);
来自docs:
将给定字符串中的字符编码为'%' - 使用转义的八位字节转义 UTF-8方案。留下字母(“A-Z”,“a-z”),数字(“0-9”)和 未保留的字符(“_-!。〜'()*”)完好无损。编码所有其他 字符。