【发布时间】:2020-03-10 08:25:08
【问题描述】:
我正在开发与 Web Api 2 Api 连接的 Xamarin.Forms 应用程序,所有请求和响应都与 HttClient 一起工作。这是我的代码:
我所有请求的类和 HttpClient 的定义
public class DataStore : IDataStore<object>
{
HttpClient client;
public DataStore()
{
client = new HttpClient()
{
BaseAddress = new Uri($"{App.Uri}")
};
}
我的请求之一示例:
public async Task<User> GetProfileSetup()
{
try
{
if (CrossConnectivity.Current.IsConnected)
{
string token = DependencyService.Get<ISharedFunctions>().GetAccessToken();
client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.Add("Accept", "application/json");
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
var response = await client.GetAsync(@"api/User/GetProfilSetup");
if (response.IsSuccessStatusCode)
{
string jsonMessage;
using (Stream responseStream = await response.Content.ReadAsStreamAsync())
{
jsonMessage = new StreamReader(responseStream).ReadToEnd();
}
User user = JsonConvert.DeserializeObject<User>(jsonMessage);
return user;
}
else
{
var m = response.Content.ToString();
return null;
}
}
else
{
return null;
}
}
catch (Exception ex)
{
Debug.WriteLine(ex);
string error = ex.Message;
return null;
}
}
我的想法是在一个地方检查每个响应(响应状态代码)。我需要这个来抛出警报错误,刷新令牌等。有没有可能的方法?我想控制每个请求/响应。
【问题讨论】:
标签: c# xamarin xamarin.forms httpclient dotnet-httpclient