【解決方法】リモート サーバーがエラーを返しました: (502) Bad Gateway

プログラミングQA

[ad_1]

何らかの理由で、サーバーからの応答を読み取ることができず、「リモート サーバーがエラーを返しました: (502) Bad Gateway」というエラーが表示されますが、サーバーのログを確認すると、応答が送信されています。応答を受信できないために何かが不足しているかどうかはわかります

C#
try
{
  DOMFlightAvailabilityPortTypeClient obj = new DOMFlightAvailabilityPortTypeClient();
  string req = "<Request>"
  + "<Origin>BOM</Origin>"
  + "<Destination>DEL</Destination>"
  + "<DepartDate>2014-11-20</DepartDate>"
  + "<ReturnDate>2014-12-21</ReturnDate>"
  + "<AdultPax>1</AdultPax>"
  + "<ChildPax>0</ChildPax>"
  + "<InfantPax>0</InfantPax>"
  + "<Currency>INR</Currency>"
  + "<Clientid>12345</Clientid>"
  + "<Clientpassword>12345</Clientpassword>"
  + "<Clienttype>12345</Clienttype>"
  + "<Preferredclass>E</Preferredclass>"
  + "<mode>ONE</mode>"
  + "<PreferredAirline>AI,G8,IC,6E,9W,S2,IT,9H,I7,SG</PreferredAirline>"
  + "</Request>";

  string str = obj.getAvailability(req);
  XmlDocument doc = new XmlDocument();
  doc.LoadXml(str);
  DataSet ds = new DataSet();
  ds.ReadXml(new XmlTextReader(new StringReader(str)));
  GridView1.DataSource = ds.Tables[0];
  GridView1.DataBind();
}
catch (WebException ex)
{
  if (ex.Status == WebExceptionStatus.ProtocolError)
  {
     WebResponse resp = ex.Response;
     using (StreamReader sr = new StreamReader(resp.GetResponseStream()))
     {
         Response.Write(sr.ReadToEnd());
     }
  }
}

解決策 1

エラー 502「不正なゲートウェイ」は内部サーバー エラーであり、通常はコードとは関係ありませんが、Web サーバーとデータベース システムなどの間の内部通信に関係します。

Web サーバーをホストしている人々に相談してください。彼らはそれを分類できるかもしれません。

解決策 4

リクエストに以下の行を追加します。

req.Proxy = WebRequest.DefaultWebProxy;
req.ContentType = “アプリケーション/x-www-form-urlencoded”;
/// プロキシがユーザーを認識しない問題を解決するには
/// エージェント、デフォルト値がここに提供されます。
req.UserAgent = “Mozilla/4.0 (互換性、MSIE 7.0、Windows NT 5.1)”;

[ad_2]

コメント

タイトルとURLをコピーしました