从简单的Web应用程序从HTTP服务器返回500

时间:2016-09-15 19:53:55

标签: asp.net http request

我在服务器A上有一个应用程序。它接受HTTP请求中的XML数据和来自该HTTP请求数据的makefile。 (的 urlABC

我的其他应用服务器B 使用该网址 urlABC ,并使用HTTP请求在该网址上发送数据。

在requestXml中发送数据

Request sending code :  HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.myurl.com/payment");
            byte[] bytes;
            bytes = System.Text.Encoding.ASCII.GetBytes(requestXml);
            request.ContentType = "text/xml; encoding='utf-8'";
            request.ContentLength = bytes.Length;
            request.Method = "POST";
            Stream requestStream = request.GetRequestStream();
            requestStream.Write(bytes, 0, bytes.Length);
            requestStream.Close();
            HttpWebResponse response;
            response = (HttpWebResponse)request.GetResponse();
            if (response.StatusCode == HttpStatusCode.OK)
            {
                Stream responseStream = response.GetResponseStream();
                string responseStr = new StreamReader(responseStream).ReadToEnd();
                return responseStr;
            }
            return null;

但有时服务器B上的应用程序从HTTP服务器返回 500但未在服务器A上获得任何异常。

服务器B仅使用上述功能发送数据。没有其他的。 服务器A具有所有逻辑。但没有给出任何错误/异常。

1 个答案:

答案 0 :(得分:0)

由于服务器A充当请求客户端和服务器B之间的网关,因此服务器A需要处理服务器B返回的HTTP状态代码500(内部服务器错误)并返回5xx系列HTTP代码客户。

服务器A的响应中的这些HTTP状态代码中的任何一个都应该有效。

  1. 500 - 内部服务器错误(来自服务器B)
  2. 502 - 错误网关(在响应中使用500 HTTP状态代码处理服务器B响应后由服务器A生成)