2017-02-14 21 views
0

Это код в моем UserService:Как установить тайм-аут в MvvmCross.Plugins.Network.Rest?

var request = new MvxRestRequest("http://localhost:8080/user/auth"); 

var client = Mvx.Resolve<IMvxRestClient>(); 

MvxStreamRestResponse response = await client.MakeStreamRequestAsync(request); 

messageService.showMessage(response.StatusCode.ToString()); //Never reached when my server is down 

Когда мой REST вниз, я никогда не получить контроль снова. Как я могу установить тайм-аут или другой подход в этом случае?

+0

есть ли 'MakeStreamRequestAsync' перегрузку, которая принимает 'CancellationToken'? –

ответ

3

MakeStreamRequestAsync имеет overload which takes a CancellationToken:

Task<MvxStreamRestResponse> MakeStreamRequestAsync(MvxRestRequest restRequest, CancellationToken cancellationToken = default(CancellationToken)); 

Вы можете использовать его с CancellationTokenSource и есть что решать, когда тайм-аут запроса:

var cts = new CancellationTokenSource(TimeSpan.FromSeconds(5)); 
var response = await client.MakeStreamRequestAsync(request, cts.Token); 
+0

Идеальное решение! –

 Смежные вопросы

  • Нет связанных вопросов^_^