【发布时间】:2016-08-18 06:36:37
【问题描述】:
我们有一个 Azure WebApi 服务,有时会像这样返回一个 BadRequest
return BadRequest("{\"errors\":[{\"message\":\"MyBuddy not found!\",\"code\":9}]}");
问题是在Xamarin.Android上,使用System.Net.Http.HttpClient,我们收到的响应内容是空的。
这是我们的代码:
private static async Task<int> ReadErrorCodeAsync(HttpResponseMessage response)
{
var x = response.ReasonPhrase;
var errorSerialized = await response.Content.ReadAsStringAsync();
var error = JObject.Parse(errorSerialized);
return ((JArray)error["errors"])[0]["code"].Value<int>();
}
但是errorSerialized 总是一个空字符串。 我们还使用 Swagger UI,响应内容是我们所期望的,例如:
{
"errors": [
{
"message": "MyBuddy not found!",
"code": 9
}
]
}
BadRequest 响应的内容在 Xamarin.Android 上为空是否正常?有什么我可以做的吗,例如以不同的方式配置 HttpClient,以便我收到 StringContent?
编辑:我们使用的是AndroidClientHandler。为此,我们向 Android 项目添加了一个文本文件,将其 BuildAction 设置为 AndroidResource,并将其内容设置为 XA_HTTP_CLIENT_HANDLER_TYPE=Xamarin.Android.Net.AndroidClientHandler
【问题讨论】:
标签: asp.net-web-api xamarin xamarin.android httpclient