public async Task <bool> Call(TRequest req, IsRetryTask isRetryTask) { Request = req; while (true) { await Task.Delay(1000); if (!CrossConnectivity.Current.IsConnected) { if (await isRetryTask(ApiErrorCode.ConnectionFailure)) { continue; } return(false); } try { var serializedItem = JsonConvert.SerializeObject(req); var r = await ApiClient.Client.PostAsync(Path, new StringContent(serializedItem, Encoding.UTF8, "application/json")); var json = await r.Content.ReadAsStringAsync(); Response = await Task.Run(() => JsonConvert.DeserializeObject <TResponse>(json)); } catch { if (await isRetryTask(ApiErrorCode.ConnectionFailure)) { continue; } return(false); } break; } // 正常時true return(true); }
public async Task <bool> Call(TRequest req, IsRetryTask isRetryTask) { Request = req; while (true) { await Task.Delay(1000); if (!CrossConnectivity.Current.IsConnected) { if (await isRetryTask(ApiErrorCode.ConnectionFailure)) { continue; } return(false); } try { var json = await ApiClient.Client.GetStringAsync(Path); Response = await Task.Run(() => JsonConvert.DeserializeObject <TResponse>(json)); } catch { if (await isRetryTask(ApiErrorCode.ConnectionFailure)) { continue; } return(false); } break; } // 正常時true return(true); }