HttpWebRequest 给出了 500 状态代码,但从 API?
HttpWebRequest gives 500 status code but is returning JSON from the API?
问题背景:
我正在尝试为我在 Azure 中托管的 Web API 创建一个简单的 HttpWebRequest
。
问题:
如果我通过浏览器或请求工具(如 Postman)访问我的 Web API 端点,我将收到 JSON
没有问题的响应。
如果我尝试通过 HttpWebRequest
调用访问同一端点,我会收到 500 致命错误,但我能够在 Try Catch
的响应 属性 中看到JSON
回复已返回。
The remote server returned an error: (500) Internal Server Error.
代码:
以下是我向 Web API 发出的简单请求。如前所述,在 Catch
中,响应是 返回我期望的 JSON
,如图所示:
{"ResponseMessage":"OK","ResponseContent:[{"kind":"youtube#playlistItem","etag":"\"gMxXHe- ........ etc }]}
请求:
string url ="http://myapi.azurewebsites.net/api/videos/GetYouTubeVideos";
try
{
HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest;
WebResponse wr = req.GetResponse();
}
catch (WebException wex)
{
var pageContent = new StreamReader(wex.Response.GetResponseStream())
.ReadToEnd();
}
我明白确定 500 的原因并不是直接的,但任何人都可以提供一个原因,我会得到这个错误,但仍然从服务中收到 JSON
显然是抛出异常?
关于WebHeaders
有一些属性你一定要小心!示例代码:
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
webRequest.Method = "GET";
webRequest.Proxy = webProxy;
webRequest.AllowAutoRedirect = true;
webRequest.Timeout = 20 * 1000;
webRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
webRequest.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36";
WebResponse wr = webRequest.GetResponse()
问题背景:
我正在尝试为我在 Azure 中托管的 Web API 创建一个简单的 HttpWebRequest
。
问题:
如果我通过浏览器或请求工具(如 Postman)访问我的 Web API 端点,我将收到 JSON
没有问题的响应。
如果我尝试通过 HttpWebRequest
调用访问同一端点,我会收到 500 致命错误,但我能够在 Try Catch
的响应 属性 中看到JSON
回复已返回。
The remote server returned an error: (500) Internal Server Error.
代码:
以下是我向 Web API 发出的简单请求。如前所述,在 Catch
中,响应是 返回我期望的 JSON
,如图所示:
{"ResponseMessage":"OK","ResponseContent:[{"kind":"youtube#playlistItem","etag":"\"gMxXHe- ........ etc }]}
请求:
string url ="http://myapi.azurewebsites.net/api/videos/GetYouTubeVideos";
try
{
HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest;
WebResponse wr = req.GetResponse();
}
catch (WebException wex)
{
var pageContent = new StreamReader(wex.Response.GetResponseStream())
.ReadToEnd();
}
我明白确定 500 的原因并不是直接的,但任何人都可以提供一个原因,我会得到这个错误,但仍然从服务中收到 JSON
显然是抛出异常?
关于WebHeaders
有一些属性你一定要小心!示例代码:
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
webRequest.Method = "GET";
webRequest.Proxy = webProxy;
webRequest.AllowAutoRedirect = true;
webRequest.Timeout = 20 * 1000;
webRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
webRequest.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36";
WebResponse wr = webRequest.GetResponse()