在我的.Net核心API项目中,调用另一个API(已停止)时,出现错误提示。
System.Net.Http.HttpRequestException:发送请求时发生错误。 ---> System.Net.Http.WinHttpException:无法建立与服务器的连接
我认为应该返回状态码503(服务不可用)或404(未找到),而不是出现此错误,但是我遇到了异常。请指教该如何解决?我的代码是:
HttpClient httpClient = new HttpClient();
httpClient.BaseAddress = new Uri("apiBaseUrl");
HttpResponseMessage response = await httpClient.GetAsync("apiUrl");
答案 0 :(得分:0)
欢迎来到SO。
要使您的代码获得import React, { Fragment } from "react";
import { Paper, ListItem, List, ListItemText } from "@material-ui/core";
import { withStyles } from "@material-ui/core/styles";
const styles = {
sideBar__block: {
padding: 20
},
sideBar__list__element: {
li: {
borderBottom: "1px solid rgb(212, 212, 212)"
}
},
sideBar__listItem__element: {
borderBottom: "1px solid rgb(212, 212, 212)"
}
};
const SideBar = props => {
const { classes } = props;
return (
<div className={classes.sideBar__block}>
<Paper className={classes.sideBar__list__element}>
<List>
<ListItem className={classes.sideBar__listItem__element}>
<ListItemText primary="form" secondary=" FORM" />
</ListItem>
<ListItem>
<ListItemText primary="E" secondary=" Inbox" />
</ListItem>
<ListItem>
<ListItemText primary="re box" secondary=" Inbox" />
</ListItem>
<ListItem>
<ListItemText primary="Upload" secondary="upload" />
</ListItem>
</List>
</Paper>
</div>
);
};
export default withStyles(styles)(SideBar);
或503
响应,您需要在指定的URL上安装一台服务器。在您的情况下,404
上没有服务器可以返回HTTP状态代码。对于任何不存在的URL都是一样的。
如果您尝试使用其他网址,例如apiBaseUrl
,您将得到一个https://google.com/fake
,因为服务器404
能够发送回google.com
来表示在其服务器上找不到404
部分服务器。
如果要处理它,则可以捕获/fake
并进行相应处理。
System.Net.Http.HttpRequestException
如果您将其视为邮政地址。如果您写的随机地址不存在,那么您会收到邮局的回信,其中有一个例外情况,说“没有这样的地址”,这与上述例外情况相同。
但是,如果您写的是真实地址,但写信给没有住在那里的人,那么您将收到该地址居民的回信,信中写着“此地址无此人”,与try
{
HttpClient httpClient = new HttpClient();
httpClient.BaseAddress = new Uri("apiBaseUrl");
HttpResponseMessage response = await httpClient.GetAsync("apiUrl");
}
catch(HttpRequestException ex)
{
// Handle the exception here
}
。
在此示例中,邮局是.NET Framework / HttpClient类,真实地址中的居民是Web服务器。