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

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

獲取遠程服務器返回錯誤:(504) WebAPI 網關超時

獲取遠程服務器返回錯誤:(504) WebAPI 網關超時

C#
動漫人物 2022-07-23 16:27:14
我正在使用下面的代碼通過 WebRequest 從我的 C# 代碼進行 API 調用:public object GetData() { object response = ""; string token = "EF232354"; string baseUrl = ConfigurationManager.AppSettings["BaseURL"].ToString(); string endPoint = ConfigurationManager.AppSettings["EndPoint"].ToString(); var httpWebRequest = (HttpWebRequest) WebRequest.Create(baseUrl + endPoint); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = HttpVerb.GET.ToString(); httpWebRequest.Headers.Add("token", token); var httpResponse = (HttpWebResponse) httpWebRequest.GetResponse(); Stream dataStream = httpResponse.GetResponseStream(); StreamReader reader = new StreamReader(dataStream); using(JsonReader sdr = new JsonTextReader(reader))  {  JsonSerializer serializer = new JsonSerializer();  response = serializer.Deserialize(sdr); }  return response;}有時我會得到:消息:遠程服務器返回錯誤:(504)網關超時。異常類型:System.Net.WebExceptionWebRequest 一次可以發出多少個請求?
查看完整描述

1 回答

?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

當我注意到響應沒有被處理時,我正在調整問題以演示對內存流的讀取。這有 95% 可能是您的潛在問題。Streams 和 StreamReaders 也是一次性的,應該使用 using() 閉包進行包裝。


public object GetData() 

{

  object response = "";

  string token = "EF232354";

  string baseUrl = ConfigurationManager.AppSettings["BaseURL"].ToString();

  string endPoint = ConfigurationManager.AppSettings["EndPoint"].ToString();


  var httpWebRequest = (HttpWebRequest) WebRequest.Create(baseUrl + endPoint);


  httpWebRequest.ContentType = "application/json";

  httpWebRequest.Method = HttpVerb.GET.ToString();

  httpWebRequest.Headers.Add("token", token);


  using (var httpResponse = (HttpWebResponse) httpWebRequest.GetResponse())

  {

    using (Stream dataStream = httpResponse.GetResponseStream())

    {

      using (StreamReader reader = new StreamReader(dataStream))

      {

        using(JsonReader sdr = new JsonTextReader(reader)) 

        {

          JsonSerializer serializer = new JsonSerializer();

          response = serializer.Deserialize(sdr);

        }

        return response;

      }

    }

    httpResponse.Close(); // For good measure. *should* be covered by Dispose.

  }

}


查看完整回答
反對 回復 2022-07-23
  • 1 回答
  • 0 關注
  • 357 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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