调用 API returns 404 AND JSON 数据
Calling an API returns a 404 AND JSON data
我正在使用 "GET" 方法调用 API 来搜索信用咨询机构以获取公司信息...
var feed = "";
WebRequest.ContentType = "application/json";
HttpWebResponse response;
try
{
response = (HttpWebResponse)WebRequest.GetResponse();
using (response)
using (var responseStream = response.GetResponseStream())
{
feed = new StreamReader(responseStream).ReadToEnd();
}
return feed;
}
catch (HttpResponseException ex)
{
Console.WriteLine(ex.InnerException);
return "ERROR";
}
catch (WebException ex)
{
var webResponse = ex.Response as HttpWebResponse;
throw new HttpResponseException(webResponse.StatusCode);
}
行...
response = (HttpWebResponse)WebRequest.GetResponse();
... 抛出异常,例如 404 如果我正在呼叫的 API 没有找到与任何公司匹配的详细信息。当我通过 Postman 调用 API 时,我得到状态 404 :-
但是,在结果正文中(在 Postman 中)也有一些 JSON。
我需要处理异常并获取 JSON 进行解析,并根据返回的消息采取行动。
如何获取 Postman 收到的 JSON,以便我可以正确处理它?
检查catch
块中的异常代码,检查是否为404(HttpStatusCode.NotFound
),并将结果与StreamReader
一起使用。
应该是这样的:
try {
response = (HttpWebResponse)WebRequest.GetResponse();
// etc
}
catch(WebException ex)
{
var webResponseCode = (ex.Response as HttpWebResponse)?.StatusCode;
if (webResponseCode == HttpStatusCode.NotFound) {
var resp = new StreamReader(ex.Response.GetResponseStream()).ReadToEnd();
}
}
我正在使用 "GET" 方法调用 API 来搜索信用咨询机构以获取公司信息...
var feed = "";
WebRequest.ContentType = "application/json";
HttpWebResponse response;
try
{
response = (HttpWebResponse)WebRequest.GetResponse();
using (response)
using (var responseStream = response.GetResponseStream())
{
feed = new StreamReader(responseStream).ReadToEnd();
}
return feed;
}
catch (HttpResponseException ex)
{
Console.WriteLine(ex.InnerException);
return "ERROR";
}
catch (WebException ex)
{
var webResponse = ex.Response as HttpWebResponse;
throw new HttpResponseException(webResponse.StatusCode);
}
行...
response = (HttpWebResponse)WebRequest.GetResponse();
... 抛出异常,例如 404 如果我正在呼叫的 API 没有找到与任何公司匹配的详细信息。当我通过 Postman 调用 API 时,我得到状态 404 :-
但是,在结果正文中(在 Postman 中)也有一些 JSON。
我需要处理异常并获取 JSON 进行解析,并根据返回的消息采取行动。
如何获取 Postman 收到的 JSON,以便我可以正确处理它?
检查catch
块中的异常代码,检查是否为404(HttpStatusCode.NotFound
),并将结果与StreamReader
一起使用。
应该是这样的:
try {
response = (HttpWebResponse)WebRequest.GetResponse();
// etc
}
catch(WebException ex)
{
var webResponseCode = (ex.Response as HttpWebResponse)?.StatusCode;
if (webResponseCode == HttpStatusCode.NotFound) {
var resp = new StreamReader(ex.Response.GetResponseStream()).ReadToEnd();
}
}