POST请求delete + symball

时间:2013-12-06 09:23:06

标签: android post request rest-client

我有这段代码

httpUriRequest = new HttpPost(address.toString());
((HttpPost)httpUriRequest).setEntity(new ByteArrayEntity(restParams.postData()));
httpUriRequest.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");

当我发送"asd+asd"服务器获取"asdasd""asd asd"时。此外,我尝试通过rest-client将此字符串发送到服务器,它运行良好。

那么问题是什么?任何人都可以建议一些解决方案吗?

1 个答案:

答案 0 :(得分:0)

它用空格替换“+”因为在HTML URL中编码“+”符号被视为空格并且它总是被空格替换。

基本上你需要确保传递的变量是编码的('%'字符是URL编码中的特殊字符)。

任何特殊字符 - %,?和&等...都需要进行编码。它们用'%'和十六进制数编码。所以'%'应该变成'%25','&'成为'%26'等等。

退房:escape, or encodeURI / encodeURIComponent for why you should avoid using escape.

一种解决方案是您将请求网址发送到Post方法并以NameValuePair的形式发布您的请求。

查看URL Encoding Reference