较大的有效负载在HTTP POST上失败

本文关键字:HTTP POST 失败 负载 有效 | 更新日期: 2023-09-27 17:58:54

我有代码使用WebClient执行到供应商网站的HTTP POST。上传值。当负载大小在1.6MB以下时,响应是一些预期的XML数据。较大时,来自供应商站点的响应为空。

var client = new WebClient();
client.Encoding = Encoding.UTF8;
byte[] response = client.UploadValues(strTargetUri, paramsNameValueCollection);

供应商表示,他们通常会收到更大的有效载荷。我找不到任何IIS或WCF设置会按大小或时间限制传出负载。如果我超过了我设定的限制。NET会抛出一个异常,而不仅仅是返回null。

有什么建议可以说明我可能缺少什么?或者我应该和供应商分享的东西?

更新我已经收到了在供应商端收到的样品。当低于约2MB时,它们显示它们接收到直接的XML,例如:

<STAT>  
    <REQUEST _SEQUENCE_ID="1">
        <CUSTOMER>...

但当它更大时,它1)是URL编码的,2)前面仍然有其他查询字符串组件,3)包含一些嵌入的"附加"XML,如XML命名空间引用:

integrator=MyVal&userId=MyUser&password=12345&payload=%3cSTAT+xmlns%3axsd%3d%22http%3a%2f%2fwww.w3.org%2f2001%2fXMLSchema%22+xmlns%3axsi%3d%22http%3a%2f%2fwww.w3.org%2f2001%2fXMLSchema-instance%22%3e%3cREQUEST+_SEQUENCE_ID%3d%221%22...

我对POST的简单理解,以及我在不同场景之间没有设置任何不同的事实,让我认为差异是因为供应商的处理软件"窒息"了,并向他们显示了不同的结果。我正在让我的网络团队帮助我追踪传出的数据包,看看我们是否能验证我们在最后一刻发送的内容。

较大的有效负载在HTTP POST上失败

John,

限制很可能是服务器,因此您可能必须联系供应商。例如,Tomcat服务器的默认最大非多部分POST大小仅为2MB。如果可以检测到服务器是Tomcat,则可以建议他们增加Connonnector的maxPostSize属性。

Joe