我正在研究有关xamarin的个人项目。所以基本上我要做的就是从某些api获取一些数据。所以方法必须是" POST"并发送一些标题。响应应该是令牌和事物列表。我试着绕过这个问题,但我无法解决这个问题。 我搜索了很多,发现了一些帮助我使用我的代码到达这里的东西:
public async Task<List<Things>> GetThingsAsync()
{
var client = new HttpClient();
client.DefaultRequestHeaders.Add("xxx", "xxx");
client.DefaultRequestHeaders.Add("xxx", xxx);
HttpContent content = new StringContent("");
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var json = await client.PostAsync("https://blabla/bla/", content);
var br = JsonConvert.DeserializeObject<List<Things>>(json);
return br;
}
返回br
会产生此错误:
错误CS1503参数1:无法转换 &#39; System.Net.Http.HttpResponseMessage&#39;到&#39;字符串&#39;
我尝试使用JsonSerializerSettings
,但我无法弄明白。所以,我是谁在正确的轨道?我错过了什么或者这种做法完全错了吗?!在此先感谢。
public ICommand GetThingsCommand
{
get
{
return new Command(async () =>
{
things = await _apiServices.GetThingsAsync();
await Application.Current.MainPage.Navigation.PushAsync(new SinglePage());
});
}
}
数据的绑定必须在SinglePage上进行,但是当我返回br
答案 0 :(得分:1)
PostAsync
会返回HttpResponseMessage,您可以使用它来检索回复的实际内容
var client = new HttpClient();
client.DefaultRequestHeaders.Add("xxx", "xxx");
client.DefaultRequestHeaders.Add("xxx", xxx);
HttpContent content = new StringContent("");
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var response = await client.PostAsync("https://blabla/bla/", content);
response.EnsureSuccessStatusCode();
string json = await response.Content.ReadAsStringAsync();
var br = JsonConvert.DeserializeObject<List<Things>>(json);
return br;