亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

WebHttpRequest 失敗 (500),而郵遞員成功運行 Web GET 請求

WebHttpRequest 失敗 (500),而郵遞員成功運行 Web GET 請求

C#
哈士奇WWW 2021-11-21 10:40:45
我嘗試從特定站點獲取特定值...該站點使用對https://www.plus500.co.il/api/LiveData/FeedUpdate?instrumentId=19的 Ajax 調用定期更新該值(您可以導航到該地址并查看您獲得的 XML 響應。)使用郵遞員:發送GET /api/LiveData/FeedUpdate?instrumentId=19 HTTP/1.1Host: www.plus500.co.ilCache-Control: no-cachePostman-Token: f823c87d-3edc-68ce-e1e7-02a8fc68be7a我得到一個有效的 Json 響應...不過,當我從 C# 嘗試它時:var webRequest = WebRequest.CreateHttp(@"https://www.plus500.co.il/api/LiveData/FeedUpdate?instrumentId=19");webRequest.Method = "GET";using (var response = webRequest.GetResponse()){...}請求失敗,錯誤代碼 403(禁止)添加時:webRequest.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36";請求失敗,錯誤代碼 500(內部服務器錯誤)添加(編輯)我也開始ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 |                                   SecurityProtocolType.Tls11 |                                   SecurityProtocolType.Tls |                                   SecurityProtocolType.Ssl3;另外,我嘗試設置一個 CookieContainer,但結果是相同的 500。為什么 Postman/Chrome 成功查詢這個 API 而 C# Webrequest 沒有?有什么不同?
查看完整描述

1 回答

?
嚕嚕噠

TA貢獻1784條經驗 獲得超7個贊

因此,失敗的原因是默認情況下郵件頭包含在來自郵遞員的客戶端請求中,盡管不是來自 C# 請求。


使用像 Fiddler ( https://www.telerik.com/fiddler )這樣的程序,您可以查看請求以查看郵遞員請求的標頭是:


Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8    

Accept-Encoding: gzip, deflate, br    

Accept-Language: en-US,en;q=0.9    

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36

然而從 C# 只是


User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36

像這樣填寫額外的客戶端請求標頭可以讓它順利通過:


webRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8";

webRequest.Headers.Add("Accept-Encoding", "gzip deflate,br");

webRequest.Headers.Add("Accept-Language", "en-US,en;q=0.9");


查看完整回答
反對 回復 2021-11-21
  • 1 回答
  • 0 關注
  • 295 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號