我正在测试几个不同的公共RESTful API,每个不同的http参数值名称,但概念上的所有工作都是相似的。然而,这些公司都没有连接,因此它必定是我的最终目标。HttpWebRequest中的http参数值的大小是否有限制?
在.NET我在尝试获得HttpWebResponse如果出现以下错误:
消息: “服务器已提交协议违例科= ResponseStatusLine。”
状态:ServerProtocolViolation {11}
使用Fiddler,我发现返回的头文件不存在,并且这是问题的原因(甚至不存在且格式不正确):
HTTP/1.0 200这个越野车服务器没有返回标题
我发送的参数是一篇冗长的文本新闻文章。我已删除全部 puntuation,characters等只是确保没有任何干扰。我打造出来的文字使用StringBuilder中,然后创建URI象下面这样:
Dim sb As New StringBuilder
sb.Append("&apiKey=" + HttpUtility.UrlEncode("123456789"))
sb.Append("&inputText=" + HttpUtility.UrlEncode(Me.MyTestText))
Dim ApiHttpWebRequest As HttpWebRequest = CType(WebRequest.Create(New Uri(BaseRequestURL + sb.ToString.Trim())), HttpWebRequest)
Dim ApiHttpWebResponse As HttpWebResponse = CType(ApiHttpWebRequest.GetResponse(), HttpWebResponse)
此代码确实与我送它最文本工作。我发现的有趣的事情是,如果我缩短了我发送的文本,那么它就可以工作!我无法弄清楚究竟是还是断点。在HttpUtility.UrlEncode函数针对它运行之后,stringbuilders值展开。然而,文本的大小只有大约5-8千字节,远低于'httpWebRequest'.config设置所规定的任何大小限制,这些设置在MSDN 或中由我正在使用的任何API所规定例如1个限制是150千字节的文本)。我甚至尝试在web.config中将所有这些值设置为“-1”,这意味着:“值为-1表示不会对响应标头施加大小限制。”
是否有http参数值或其他任何东西的大小限制我错过了会导致此?谢谢!