编码url以获取JSON数据

时间:2015-03-14 16:10:31

标签: android json

我正在尝试从远程服务器获取json数据。一旦两个字符串传递我的应用程序被强制停止,一切正常。如何编码网址以防止此错误

这是我如何尝试获取json值

  jsonobject = JSONfunctions.getJSONfromURL("http://www.example.com/index.php?sutyp="+sutyp);

如果我通过sutyp传递“Hello”没有错误但是如果我通过“Hello World”app力停止

如何对网址进行编码以防止这种情况发生。任何建议都会有很大的帮助

2 个答案:

答案 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”)和   未保留的字符(“_-!。〜'()*”)完好无损。编码所有其他   字符。