我是否需要转义一个字符串作为post参数传递到HTTP正文?

时间:2013-06-24 11:59:39

标签: java android escaping httpurlconnection post-parameter

我使用HTTPUrlConnection来请求REST API 我用“Content-type”标题如下:

urlConnection.setRequestProperty("Content-type",
                        "application/x-www-form-urlencoded");

我按如下方式设置HTTP正文:

out = urlConnection.getOutputStream();
out.write(postParameters.getBytes("UTF-8"));

当我设置HTTP标头和正文时,我不知道是否需要转义post参数(这是一个String),如上所示。

我只需要“是”或“否”作为答案,但如果答案解释为什么是“是”或“为什么不”,那将会很棒。

1 个答案:

答案 0 :(得分:5)

由于您要发布的数据将被解释为application/x-www-form-urlencoded,因此必须具有以下格式:

name1=value1&name2=value2&...

因此,“值”部分必须进行URL编码,否则将无法正确解释。

将POST与x-www-form-urlencoded一起使用只是将URL的查询字符串部分移出请求并进入正文。