2014-04-18 27 views
0

我有使用WebClient.UploadValues向供應商的站點執行HTTP POST的代碼。當有效載荷的大小小於1.6 MB時,響應是一些XML數據。當較大時,供應商站點的響應爲空。更大的有效載荷在HTTP POST上失敗

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

供應商表示他們經常收到更大的有效負載。我無法找到任何IIS或WCF設置,這些設置會按大小或時間限制傳出有效負載。如果我超過了我設置的限制,.NET會拋出一個異常,而不僅僅是返回null。

對我可能在我身邊缺少的任何建議?或者我應該與供應商分享?

UPDATE 我收到了在供應商處收到的樣品。當在〜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... 

我的職位的理解過於簡單化,事實上,我設置的場景之間的不同沒有什麼讓我覺得不同的是,因爲供應商的處理軟件「哽咽「並向他們展示不同的結果。我讓我的網絡團隊幫助我跟蹤外發數據包,看看我們是否能夠在最後時刻驗證我們發送的內容。

+0

你能跟蹤使用提琴手或類似的網絡上的實際響應嗎?你應該能夠得到一個HTTP響應代碼。 (非空 - 由您的框架解釋) –

+0

我沒有直接訪問權限。我的網絡工程團隊檢查了這些帖子,發現流量沒有問題。我會檢查是否還有更多他們可以告訴我。謝謝。 –

回答

0

約翰,

的限制是最有可能的服務器,所以您可能需要與供應商聯繫。例如,Tomcat服務器的默認最大非多部分POST大小僅爲2MB。如果您可以檢測到服務器是Tomcat,則可以建議他們增加Connnector的maxPostSize屬性。

Joe

+0

我會轉發,謝謝! –

相關問題