iT邦幫忙

0

C# Web API 502 Bad GateWay 問題排解

前情提要

使用HttpClient Post時,碰到API無回應,大約兩分鐘後出現502 Bad GateWay的錯誤,但使用Postman卻可以成功Post。後來透過Fiddler找出Header多了一個 "Expect:100-continue",紀錄下解決過程
(HttpWebRequest也會遇到同樣的問題)


Postman

  1. Postman設定
    Setting -> Proxy的Tab -> Port設定8888
    https://ithelp.ithome.com.tw/upload/images/20210614/20110063j5d7fHTVq6.png
  2. 發送Request後Fiddler查看Postman傳送的Header
    https://ithelp.ithome.com.tw/upload/images/20210614/20110063jwj4h6NQEu.png

C#

  1. 程式新增設定WebProxy
//Fiddler預設監聽8888端口
var client = new HttpClient(new HttpClientHandler{ Proxy = new WebProxy("127.0.0.1", 8888), UseProxy = true})
  1. 發送Request後Fiddler查看程式傳送的Header
    https://ithelp.ithome.com.tw/upload/images/20210614/201100630pJ9e6siXm.png

解法
把ExpectContinue設定成false即可

client.DefaultRequestHeaders.ExpectContinue = false;

尚未有邦友留言

立即登入留言