编辑:我使用的是从另一个过于复杂的项目复制的代码...幸运的是周末不远了。
*****原题*************
我目前正在包装一个供内部使用的外部 SMS 网关 API - 外部 API 要求向多个收件人发送的消息使用以下语法:
http://(smsgateway)/?username=foo&pass=bar&from=myName&recipient[]=4512345678&recipient[]=4587654321&...
这适用于 GET 请求,但我宁愿 POST 到网关以避免生成非常大的 URL 的问题。尽管 HTTP 1.1 没有明确限制客户端向服务器发送带有很长 URL 的请求。
这里的问题是,如果我在 .NET 4 中使用 HttpWebRequest,则不允许我使用包含括号的表单参数名称。我收到以下错误:“指定的值具有无效的 HTTP header 字符”
我的问题是:我无法在 HTTP 1.1 规范中找到有关表单参数名称中无效字符的任何内容,那么为什么不允许我使用名为“recipients[]”的表单参数名称?
最佳答案
您如何发送 POST 请求? HTTP 不关心 POST“表单参数”,因为它们是在请求正文中发送的(具有适当的内容编码)。
关于.net - HttpWebRequest - POST 中不允许使用括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5830012/