2017-03-20 15 views

答えて

-1

は例外のスタックトレースから、あなたが読むことができます(あなたのイメージの最初の3行は)取得しようとして接続タイムアウトは次のとおりです。

public async Task LoadJson (string url) 
    { 
     try{ 
      HttpClient http = new HttpClient(); 
      var x = http.GetAsync (new Uri(url, UriKind.RelativeOrAbsolute)); 
      string res =await x.Result.Content.ReadAsStringAsync(); 
      MainViewModel.JsonList = JsonConvert.DeserializeObject<ArticleClass.RootObject>(res); 
     }catch (Exception ex) { 
      MainViewModel.JsonList = null; 
     } 
    } 

は、時々私は、次の例外を取得しますURL。

+0

同じコードがアンドロイドで動作します。私はどこに何があるかを信じています。 –

+0

多分両方のプラットフォームで単純な再試行スキーマを実装していますか?アンドロイドではヒットしませんでしたが、iosで役立ち、両方のプラットフォームでコードが似ています – bradbury9

0

私の最初のコードは完璧に動作しています。コードからではなくサーバーからの無線LANの問題です。

私は今ここで私の新しいコードを掲載します。私はnugetからmoderhttpclientを追加します。

public async Task LoadJson (string url) 
    { 
     try{ 
      using (var http = new HttpClient (new NativeMessageHandler())) { 
       var x = await http.GetAsync (new Uri (url)); 
       string res = await x.Content.ReadAsStringAsync(); 
       MainViewModel.JsonList = JsonConvert.DeserializeObject<ArticleClass.RootObject> (res); 
      } 
     }catch (Exception ex) { 
      MainViewModel.JsonList = null; 
     } 
    } 
関連する問題