2017-05-10 10 views
2

にアクセスしたとき、私はJSON(https://api.cartolafc.globo.com/mercado/destaques)を返し、特定のURLにアクセスしようとしています。XamarinのHTTPClient:エラー特定のWebサービス

は私のXamarin C#クラスでは、私はこのようにコード化された:

System.Net.WebException:取得時にエラーが発生しまし応答ストリーム(ReadDone2):

public async void DownloadDataAsync() 
    { 
     string baseUrl = "https://api.cartolafc.globo.com"; 
     string address = "/mercado/destaques"; 

     try 
     { 
      var httpClient = new HttpClient(); 



      httpClient.BaseAddress = new Uri(baseUrl); 

      var resp = await httpClient.GetAsync(address); 

      if (resp.IsSuccessStatusCode) 
      { 
       var respStr = await resp.Content.ReadAsStringAsync(); 

       var listaAtletas = JsonConvert.DeserializeObject<List<Atleta>>(respStr); 

      } 
     } 
     catch (Exception ex) 
     { 
      Debug.WriteLine(ex.Message); 

     } 

    } 

私はいつも次の例外を受信して​​いますSystem.Net.WebConnection.HandleError(System.Net.WebExceptionStatus st、System.Exception e、System.String)[0x0003a] <の8dac28ffb2cb41cba0b572038da86c99>:0 at System.Net。 WebConnection.ReadDone(System.IAsyncResult result) 0x0006e] < 8dac28ffb2cb41cba0b572038da86c99>:0 <でSystem.Runtime.Remoting.Messaging.AsyncResult.Invoke(System.Runtime.Remoting.Messaging.AsyncResult)で [0x00000] 8c304e4006094a46a7950338a3b3cb5d>:System.Runtime.Remoting.Messagingで0 .AsyncResult.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()[0x00000]で< 8c304e4006094a46a7950338a3b3cb5d>:0 System.Threading.ThreadPoolWorkQueue.Dispatchで ()[0x00096]で< 8c304e4006094a46a7950338a3b3cb5d>:0 System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackで()[0x00000] in < 8c304e4006094a46a7950338a3b3cb5d>:0 at System.Net.WebConnection.HandleError(System.Net.WebExceptionStatus st、System.Exception e、System.String)[0x0003a] in/Us ERS /ビルダー/データ/レーン/ 4468/f913a78a /ソース/モノラル/ MCS /クラス/システム/ System.Net/WebConnection.cs:447 ---内部例外スタックトレースの終わり--- System.Netで 。 HttpWebRequest.EndGetResponse(System.IAsyncResult asyncResult)System.Threadingの/Users/builder/data/lanes/4468/f913a78a/source/mono/mcs/class/System/System.Net/HttpWebRequest.cs:1029 の[0x0005e] .Tasks.TaskFactory 1[TResult].FromAsyncCoreLogic (System.IAsyncResult iar, System.Func 2 [T、TResult] endFunction、System.Action 1[T] endAction, System.Threading.Tasks.Task 1 [TResult] promise、System.Booleanが必要です)[0x00014]/Users/builder/data/lanes/4468/f913a78a/source/mono/mcs /class/referencesource/mscorlib/system/threading/Tasks/FutureFactory.cs:550 ---例外がスローされた前の場所からのスタックトレースの末尾--- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 0x0000c] in/Use RS /ビルダー/データ/レーン/ 4468/f913a78a /ソース/モノ/ MCS /クラス/ referencesource/mscorlib /システム/ランタイム/ exceptionservices/exceptionservicescommon.cs:System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccessで143 (System.Threading .Tasks.Taskタスク)[0x00047] /Users/builder/data/lanes/4468/f913a78a/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187 at System。 Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Taskタスク)[0x0002e]で/ユーザ/ビルダー/データ/レーン/ 4468/f913a78a /ソース/モノ/ MCS /クラス/ referencesource/mscorlib /システム/実行//Users/builder/data/lanes/4468/f913a78a/source/mono/mcs内のSystem.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(System.Threading.Tasks.Taskタスク)で156 をコンパイルします。/class/referencesource/mscorlib/system/runtime/compilerservices/Tas kAwaiter.cs:System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1 + ConfiguredTaskAwaiter [TResult] .GetResult()[0x00000]で/ユーザ/ビルダー/データ/レーン/ 4468/f913a78a /ソース/モノ/ MCS /クラス/ 128 /Users/builder/data/lanes/4468/f913a78a/source/mono内のSystem.Net.Http.HttpClientHandler + c__async0.MoveNext()[0x003ce]での参照ソース/ mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:535 /mcs/class/System.Net.Http/System.Net.Http/System.Net.Http/HttpClientHandler.cs:379 --- System.Net.Http.HttpClientHandler + c__async0の内部例外スタックトレースの末尾--- 。/Users/builder/data/lanes/4468/f913a78a/source/mono/mcs/class/System.Net.Http/System.Net.Http/HttpClientHandler.cs:383のMoveNext()[0x0047a] ---終了/ users/builder/data/lanes/4468/f913a78a/source/mono/mcs/class内のSystem.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()[0x0000c]の にある、 https://coffeemaker.herokuapp.com/foursquare.json?q[near]=Lima,%20PE&q[query]=Ceviche要求が正常に行われます。/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 ...

私は他人を使用するようなURL。

この特定のURLが原因で、正しく動作しない場合があります。

+0

郵便配達員で開封しても問題ありません。 WPFプロジェクトをちょうど見て作成し、この不幸を得ました。 SSLレベルか無効な証明書のいずれかでURLに奇妙なものがあります。今は時間がなく、もっと掘り下げるだろうが、あなたは "ヒント"に興味があると思った。 例外がスローされました:mscorlib.dllの 'System.Net.Http.HttpRequestException' System.Net.Http.HttpRequestException:要求の送信中にエラーが発生しました。 ---> System.Net.WebException:要求が中止されました:SSL/TLSセキュアチャネルを作成できませんでした。 –

答えて

0

スタックトレースは非常に曖昧です。恐らくthis blog here はあなたの問題と似ています。 GetAsync()呼び出しでWebサービスのURLが適切であることをデバッグモードで確認してください。 プレーンHttpClientを使用する代わりに、ModernHttpClientまたはRefitを試してみることもできます。

0

私のリリース版でも同じ問題がありました(デバッグは正常に動作していました)。私のドロイドプロジェクトの "インターネット"の許可をチェックすることができました。

how to fix you error

関連する問題