我正在尝试使用Xamarin实现改装,并且由于某种原因,如果我以前在应用程序打开时没有连接到wifi,它会抛出一个UnknownHostException (UHExc)。不过,这种情况并不总是发生。
我有两个调用来实例化我的“Refit接口”:PostLoginAsync和GetDataAsync,如下所示(我一直遵循的指南是这里):
public async Task<SomeClass> PostLogin(string user, string password)
{
SomeClass response = null;
var loginTask = apiService.UserInitiated.PostLoginAsync(new RequestBody(user: user, password: password));
response = await FireWebTask(loginTask);
return response;
}和
private async Task<List<Data>> GetRemoteDataAsync(string args)
{
List<Data> list = null;
var getDataTask = apiService.UserInitiated.GetDataAsync(args);
list = await FireWebTask(getDataTask);
return list;
}“Refit接口”看起来有点像这样:
...
[Post("/relative/url/to/login")]
Task<SomeClass> PostLoginAsync([Body(BodySerializationMethod.Json)] RequestBody requestBody);
[Get("/relative/url/to/data")]
Task<List<Data>> GetDataAsync([Header("SomeHeader")] string args);
...当我打开这个没有互联网连接的应用程序并尝试发送PostLogin-request,时,我得到了一个UHExc。如果我打开wifi,然后再试一次(不关闭应用程序),我就会再次获得UHExc,只是这次几乎没有延迟,因为这是第一次(好像异常被缓存了一样)。重新启动应用程序,然后再试一次,而不断开wifi,效果很好。
如果我对第二个请求(,GetData,)做同样的事情,我首先得到一个UHExc (很明显),但是当重新连接wifi时,它工作得完美无缺。因此,在我看来,在我看来,POST请求缓存异常或其他东西,并反复抛出它,而不试图连接。我怎样才能解决这个问题(不管实际问题是什么)?
https://stackoverflow.com/questions/32320894
复制相似问题