2017-08-03 19 views
2

私はXamarin.Formsを使用しています。私の優先度はUWPです。私はSystem.Net.Http.HttpClient経由でPOSTリクエストを作成しようとしていますし、私はこのエラーにXamarin.Forms HTTPSと自己署名付き証明書問題

System.Net.Http.HttpRequestException取得しています要求作るときに私のコードは、この

public async Task<LoginResponse> Login(User user) 
{ 
    HttpClient client = await GetClient(); 

    var response = await client.PostAsync(Url, new StringContent(JsonConvert.SerializeObject(user), Encoding.UTF8, "application/json")); 
    var mobileResult = await response.Content.ReadAsStringAsync(); 
    var result = JsonConvert.DeserializeObject<LoginResponse>(mobileResult); 

    return result; 
} 

次のようになります。エラーが発生しました要求を に送信しています。 ---> System.Runtime.InteropServices.COMException:このエラーコードに関連付けられている テキストが見つかりませんでした。

認証局が システムで System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(タスク タスク)で System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(タスク タスク)で

無効または正しくありません。 .Net.Http.HttpHandlerToFilter.d__4.MoveNext() ---例外がスローされた前の場所からのスタックトレースの終了--- でSystem.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(タスク タスク) システムに。 Runtime.CompilerServices System.Net.Http.HttpClientHandler.d__86.MoveNextで.TaskAwaiter.HandleNonSuccessAndDebuggerNotification System.Net.Http.HttpClientHandler.d__86.MoveNext(時(タスク タスク))---内部例外スタックトレースの終わり--- () --- System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotificationで System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(タスク タスク)で、例外がスローされた以前の位置---からスタックトレースの終了(タスク タスク))で System.Net.Http.HttpClient.d__58.MoveNext() ---例外がスローされた前の場所からのスタックトレースの末尾--- System.Runtime.Compile SampleApp.Views.LoginPage.d__1でSystem.Runtime.CompilerServices.TaskAwaiter 1.GetResult() at SampleApp.Services.LoginService.<Login>d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter 1.GetResultで System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(タスク タスク)でrServices.TaskAwaiter.ThrowForNonSuccess(タスク タスク)() 。 MoveNext()

私は問題を引き起こした自己署名SSLと思います。私はSSLエラーを無視するためにWindows.Web HttpClientを使うことができますが、いくつかの問題のために今はできません。 どうすればこの問題を解決できますか?前もって感謝します。

+0

あなたのURLを表示してもよろしいですか? –

+0

https://xx.xxx.xxx.xx/v1/loginのようなものです。完全なURLを表示することはできません。 https://を開始します。 – Tartar

+0

'Windows.Web.Http'を介して' DependencyService'を使ってuwpクライアントプロジェクト内でログイン機能を独立して実装できると思います。 –

答えて

0

自己署名証明書を使用するための回避策は、SSL証明書のエラーを無視するために、あなたのHttpClientを初期化する前に、次のコードを挿入することです:

ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true; 

は、System.Netを含めるようにしてください。

これが役に立ちます。

+1

前に試しましたが、それは私のためには機能しません。 https://stackoverflow.com/questions/28629989/ignore-ssl-certificate-errors-in-xamarin-forms-pcl – Tartar

関連する問題