.net - HttpWebRequest - POST 中不允许使用括号

标签 .net http httpwebrequest

编辑:我使用的是从另一个过于复杂的项目复制的代码...幸运的是周末不远了。

*****原题*************

我目前正在包装一个供内部使用的外部 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/

相关文章:

.net - 是否可以从.net webservices返回接口(interface),或者只能返回具体类?

.net - 您可以依赖哪些 Windows 环境变量?

c# - 如何让 System.Web.HttpWebRequest 对象使用 SSL 2.0?

asp.net - 在 C# 中以小块下载大文件

.net - .net vNext 到底是什么。 .net core vs vNext 差异/解释

c# - NET4 功能 : should casting generic IEnumerable<T> to IEnumerable<MoreSpecificT> be possible?

web-services - 网站 url-config 中 url 中的可选尾部斜杠

java - RSA Premaster 密码错误

python - 在 Grok - Zope - PasteScript 环境中启用 gzip 压缩

c# - 如何在不解析 C# 中的请求流的情况下根据内容长度拒绝和 HTTP Posts?