欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

發送POST請求出現Http 417錯誤的解決方法

freeflydom
2024年7月23日 9:9 本文熱度 1053

當我們POST數據到另一個IIS寄存的Web程式的情況下,

會出現:417   Expectation   Failed


這個異常源自HTTP1.1協議的一個規范: 100(Continue)

100(Continue)狀態代碼的解釋
允許客戶端發request消息body之前先用request header試探一下server,看server要不要接收request body,再決定要不要發request body。
客戶端在Request頭部中包含
Expect:100-continue
Server接到后  如果回100(continue)這個狀態代碼,客戶端就繼續發request body。

早期的Apache就認為這是一種錯誤,而IIS卻可以正確應答
這個設置是Http1.1才有。 


解決辦法:

向Header添加Expect:100-continue,如:

request.Headers.Add("Expect", "100-continue");

asp.net下:

//在代碼前加上下面一行代碼
System.Net.ServicePointManager.Expect100Continue = false;

或者在IIS網站根目錄下找到文件web.config,添加配置:

<system.net>
 <settings>
  <servicePointManager expect100Continue="false" />
 </settings>
</system.net>

 


轉自https://www.cnblogs.com/newmin/archive/2011/02/23/1962480.html 


以下為微軟文檔解釋。

注解

當此屬性設置為 true時,將使用 100-Continue 行為。 如果 Expect100Continue 屬性為 trueContentLength 且 屬性大于零或屬性為 true,則使用 PUT 和 POST 方法的SendChunked客戶端請求將向請求添加一個 Expect 標頭。 客戶端預期會收到來自服務器的 100-Continue 響應,以指示客戶端應發送要發布的數據。 當服務器根據請求標頭拒絕請求時,此機制允許客戶端避免通過網絡發送大量數據。

例如,假定 Expect100Continue 屬性為 false。 將請求發送到服務器時,它包括數據。 如果在讀取請求標頭后,服務器需要身份驗證并且必須發送 401 響應,則客戶端必須使用正確的身份驗證標頭重新發送數據。

如果此屬性為 true,則請求標頭將發送到服務器。 如果服務器未拒絕請求,則會發送 100-Continue 響應,指示可以傳輸數據。 如果服務器需要身份驗證,如前面的示例所示,它會發送 401 響應,并且客戶端未不必要地傳輸數據。

更改此屬性的值不會影響現有 ServicePoint 對象。 只有更改后創建的新 ServicePoint 對象才會受到影響。

100-Continue 行為不用于 HTTP 1.0 請求,即使此屬性設置為 true



該文章在 2024/7/23 9:52:26 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved