我想在我的android项目中调用RestFul webservice
。一切都好,直到我想将特殊字符作为字符串发送到webservice。
起初我认为问题只是空格,我用“%20”替换它们。但我看到这些字符“\ r \ n,+,/,\,?,......”也有问题。我只使用URLEncoder.encode
作为该字符串(不是整个URL),但它没有解决我的问题,例如它用'+'替换空格导致错误。或者其他例外情况,例如当我的字符串中有NewLine
字符时,它会给我Bad Request - Invalid URL
。对于每个字符我都有一些错误,例如endpoint not found
或Server Error in '/' Application
。
URL url = new URL(reqUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
现在我手动替换了每个字符。我希望它知道为什么URLEncoder.encode
没有做正确的方法,还有其他方法可以解决它吗?
解决方案:
我发现了我的问题,from this document:
模板字符串语法
模板有三个部分:路径,可选查询和可选项 片段。
我发送的字符串参数作为路径部分而非可选查询。当我发送URLEncoder.encode(myStringParameter)
作为可选查询时,即使有空格也没有任何问题。
答案 0 :(得分:0)
您可以使用post方法。
使用GET进行安全操作,使用POST进行不安全操作。
处理敏感数据时使用POST。
处理长请求时使用POST。
在AJAX环境中使用GET。
额外信息:link