Web Exception 详细信息在 VS.Net 上发生了更改

本文关键字:发生了 Net VS Exception 详细信息 Web | 更新日期: 2023-09-27 18:32:44

Rest API 调用在发布时抛出异常。那就是

远程服务器返回错误:(404( 未找到。

以下调用 API 的代码

 try
 {
        RestClient client = new RestClient(...);
        string apiResponse = client.MakeRequest(..);
 }    
 catch (WebException wex)
 {
        throw wex;
}

当小提琴手捕获流量时,它工作正常。但是,如果小提琴手没有捕获,则客户端会收到以下异常。

远程服务器返回错误:(502( 网关错误。

邮递员(Chrome扩展(和Soap UI也收到了404:未找到

更新:这是代码,调试时收到错误

public string MakeRequest(string parameters)
{
    var request = (HttpWebRequest)WebRequest.Create(_RestEndPoint + (parameters ?? String.Empty));
    request.Proxy = WebRequest.DefaultWebProxy;
    request.ContentLength = 0;
    request.Method = _Method.ToString();
    request.ContentType = _ContentType;
    request.KeepAlive = true;
    if (_RequestHeader != null)
    {
        foreach (var hdr in _RequestHeader)
        {
            request.Headers.Add(hdr.Key, hdr.Value);
        }
    }
    if (_Method == HttpVerb.POST || _Method == HttpVerb.PUT)
    {
       if (!string.IsNullOrEmpty(_PayLoad))
       {                    
          var bytes = Encoding.UTF8.GetBytes(_PayLoad);
          request.ContentLength = bytes.Length;
          using (var writeStream = request.GetRequestStream())
          {
              writeStream.Write(bytes, 0, bytes.Length);
              writeStream.Close();                        
          }
        }
    }
    using (var response = (HttpWebResponse)request.GetResponse())//Error returns here
    {
        var responseValue = string.Empty;
        checkForResponseExceptions(response.StatusCode, parameters);
        // grab the response
        using (var responseStream = request.GetResponse().GetResponseStream())
        {
            if (responseStream != null)
            {
                using (var reader = new StreamReader(responseStream))
                {
                    responseValue = reader.ReadToEnd();
                }
            }
        }
        return responseValue;
    }
}

谁能指出我错过了什么?

更新 2:

我尝试了以下代码并遇到了同样的问题

if (_Method == HttpVerb.POST)
{
    using (var wb = new WebClient())
    {
        wb.Headers[HttpRequestHeader.ContentType] = _ContentType;
        foreach (var hdr in _RequestHeader)
        {
            wb.Headers.Add(hdr.Key, hdr.Value);
        }
        try
        {
            var response = wb.UploadString(_RestEndPoint + (parameters ?? String.Empty), _Method.ToString(), _PayLoad);
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
}

所以,我想网络设置有问题,正如@GSerg在 12 月 4 日 10:01 评论的那样。但是IE设置的连接选项卡中没有设置代理。我应该检查什么以及如何摆脱这个问题?

Web Exception 详细信息在 VS.Net 上发生了更改

HTTP 错误

按"错误类型"分组

4xx 错误是"客户端"错误,与用户犯错相关的错误,例如 404 是客户端请求服务器上不存在的内容。

5xx 错误是"服务器"错误,这意味着由于内部问题,服务器在应答请求时遇到问题。

502 错误网关通常是在无法从另一台服务器获取请求时从服务器发送的。在您的情况下,它可能来自小提琴手,因为您可能仍在向被阻止的小提琴手进行查询,因此无法回答。