2011-04-29 106 views
1

编辑:我正在使用复制代码从另一个过于复杂的项目...幸运的是,周末并不遥远。HttpWebRequest - POST中不允许使用括号

** * **原来的问题* ** * ** * ** * ** *

我m目前正在封装外部SMS网关API供内部使用 - 外部API要求将消息发送到mu ltiple收件人使用以下语法:

HTTP://(smsgateway)/用户名= FOO &通=酒吧&从= MYNAME &收件人[] = 4512345678 &收件人[] = 4587654321& ...

这对于GET请求来说工作正常,但我宁愿发布到网关以避免产生非常大的URL的问题。即使HTTP 1.1没有明确限制客户端发送包含很长URL的请求到服务器。

这里的问题是,我不能,如果我在.NET 4使用HttpWebRequest的使用含括号形式参数的名字,我得到以下错误:“指定的值无效HTTP头人物的

我的问题是:我无法在HTTP 1.1规范中找到关于表单参数名称中的无效字符的任何内容,为什么我不允许使用名为'recipients []'的表单参数名称?

回答

2

您如何发送POST请求? HTTP不关心POST“表单参数”,因为它们是在请求主体中发送的(具有适当的内容编码)。

+0

添加到表单集合时发生错误:webRequest.Headers.Add(“recipients []”,“somevalue”); – kerbou 2011-04-29 08:58:14

+0

这不是POST请求的工作方式 - 表单参数不会在请求头中发送。它们在请求主体中发送。 – hrnt 2011-04-29 09:00:17

+0

这是一个快速的谷歌搜索发现,注意postData是如何被发送的:http://www.netomatix.com/httppostdata.aspx – hrnt 2011-04-29 09:02:08

相关问题