首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android - Refit意外抛出UnknownHostException

Android - Refit意外抛出UnknownHostException
EN

Stack Overflow用户
提问于 2015-08-31 22:30:04
回答 1查看 310关注 0票数 1

我正在尝试使用Xamarin实现改装,并且由于某种原因,如果我以前在应用程序打开时没有连接到wifi,它会抛出一个UnknownHostException (UHExc)。不过,这种情况并不总是发生。

我有两个调用来实例化我的“Refit接口”:PostLoginAsyncGetDataAsync,如下所示(我一直遵循的指南是这里):

代码语言:javascript
复制
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;
}

代码语言:javascript
复制
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接口”看起来有点像这样:

代码语言:javascript
复制
...
[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请求缓存异常或其他东西,并反复抛出它,而不试图连接。我怎样才能解决这个问题(不管实际问题是什么)?

EN

回答 1

Stack Overflow用户

发布于 2016-05-27 11:52:56

我也遇到了这个问题,经过一些测试后,我发现问题出在毛绒库中。现在,最初的问题是固定变化没有反映在NuGet包中,因此您需要从Github回购下载最新的源代码,并引用较新的dll。

看起来,潜在的问题是由于获得排队回放的请求失败了,即使请求导致了一个WebException。

我在我的项目中包含了最新的代码,并确认它们正在工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32320894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档