.net 抛出HttpResponseException的web api以及如何在wpf客户端上接收
从我的wpf客户端,我向web api发送异步请求,在这个场景中,web api应该返回HttpResponseException,所以我尝试了.net 抛出HttpResponseException的web api以及如何在wpf客户端上接收,.net,wpf,asp.net-web-api,.net,Wpf,Asp.net Web Api,从我的wpf客户端,我向web api发送异步请求,在这个场景中,web api应该返回HttpResponseException,所以我尝试了 HttpResponseMessage response = new HttpResponseMessage(); response = client.GetAsync(url).Result; if (response.IsSuccessStatusCode) { ... } else { MessageBox.Show("Not ac
HttpResponseMessage response = new HttpResponseMessage();
response = client.GetAsync(url).Result;
if (response.IsSuccessStatusCode)
{
...
} else {
MessageBox.Show("Not active" + response.StatusCode + " : Message - " + response.ReasonPhrase);
}
WebApi端
private void GetData()
{
try {
data = RavenSession.Query<myobj>().Take(1024).ToList();
} catch (WebException) {
throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.ServiceUnavailable, "Database is not online!"));
}
}
但接球挡根本没有被击中。我只能访问
响应。IsSuccessStatusCode
,但这样我无法从webservice向客户端返回详细的消息异常(我想显示详细消息)。从客户端读取错误消息
并根据需要格式化字符串
参考:(在文章中搜索“反序列化响应内容”)
try{
HttpResponseMessage response = new HttpResponseMessage();
response = client.GetAsync(url).Result;
if (response.IsSuccessStatusCode)
{
...
} else {
MessageBox.Show("Not active" + response.StatusCode + " : Message - " + response.ReasonPhrase);
}
}
catch(HttpResponseException e){
MessageBox.Show(e.Message);
}
catch(Exception e){
MessageBox.Show(e.Message);
}
if (response.IsSuccessStatusCode)
{
...
} else {
var errorMessage = response.Content.ReadAsStringAsync().Result;
}