首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >post方法中的org.apache.commons.httpclient.NameValuePair

post方法中的org.apache.commons.httpclient.NameValuePair
EN

Stack Overflow用户
提问于 2010-12-25 05:41:27
回答 2查看 2.3K关注 0票数 1
代码语言:javascript
复制
PostMethod p = new PostMethod(someurl);
...
NameValuePair[] data = {
    new NameValuePair("name1", "somevalue1"),
    new NameValuePair("var[3][1]", "10")
};
try {
    hc.executeMethod(p);
}
...

这就是我在Wireshark上看到的帖子:

代码语言:javascript
复制
POST /someurl HTTP/1.1
...
type=var&ship%5B3%5D%5B1%5D=10

%5B的意思是[%5D- ]

所以问题是我如何才能在我的帖子中得到方括号?

EN

回答 2

Stack Overflow用户

发布于 2010-12-25 05:46:50

当客户端解析POST主体中的查询字符串时,它应该对这些键和值进行url解码。在web浏览器上用一个简单的HTML POST表单试试,然后用wireshark检查一下。你会看到完全一样的东西。这里没有问题。

票数 1
EN

Stack Overflow用户

发布于 2010-12-25 05:47:27

这称为编码,这就是数据传输的方式。但是,接收数据的服务将在其一端对其进行解码。所以你不需要担心这个问题。

没有编码的,你不能按原样发送方括号,因为它们被认为是不安全的。下面是来自URL RFC的文本

不安全:

由于许多原因,字符可能是不安全的。空间

字符是不安全的,因为有意义的空格可能会消失,

在转录URL时可能会引入无关紧要的空格

排版的或受文字处理程序处理的字符"<“和">”是不安全的,因为它们被用作

自由文本形式的URL两边的分隔符;引号(“)用于

在某些系统中分隔URL。字符"#“是不安全的,应该

始终进行编码,因为它用于万维网和其他

系统从可能跟在其后面的片段/锚标识符分隔URL。字符"%“不安全,因为它用于

其他字符的编码。其他字符是不安全的,因为

众所周知,网关和其他传输代理有时会修改这样的字符。这些字符是"{“、"}”、"|“、"\”、"^“、"~”、"“、"”和"`“。

所有不安全字符必须始终编码在URL中。为

例如,即使在通常不处理片段或锚标识符的系统中,也必须在URL中对字符"#“进行编码,以便如果将URL复制到使用它们的其他系统中,则无需更改URL编码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4528443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档