2016-05-14 19 views
14

POSTメソッドを使用してPaypal Rest APIに接続する際に問題があります。私はmodernhttpclientを使用していない場合は、私はエラーAndroid 4.4以降でSSLHandshakeExceptionが発生する

The authentication or decryption has failed. 

を得た。しかし、私はmodernhttpclientを使用していたとき、私は、Android API 19(デバイス)でテストするとき、それは、Android API 23(マシュマロ)で作業し、とAndroid API 16(エミュレータ)I私は、カスタムソケットファクトリを使用する必要がssl handshake exception androidによると、エラー

ex {Javax.Net.Ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=…} Javax.Net.Ssl.SSLHandshakeException 

を得ました。しかし、それをHttpClientまたはmodernHttpClientでどのように実装できますか?あなたはペイパルREST APIエンドポイントを分析する場合

が、そうhttps://www.ssllabs.com/ssltest/analyze.html?d=api.sandbox.paypal.com&hideResults=onのようなSSLの研究所で、たとえば、あなたは、彼らが唯一のサポートを参照してください。私は完全にあなたの質問に答えることができますが、私はそれを試してみるよ場合

+0

「Xamarin.Android」のどのバージョンを現在使用していますか? – SushiHangover

+0

Xamarin.Androidバージョン:6.1.0.56(Xamarin Business) – albilaga

+0

私たちはAlpha 6.1.99.xxxを使用していますが、同様の(しかし異なる;-)問題があり、 "ネイティブ" Java APIを使用することに頼っています。 'HttpURLConnection'は投稿の' Stream'に 'HttpClient'問題があり、ストリーム問題のJava IO終了を取得しているために投稿を行います。 .NETフレームワークをスキップすると、それが解決されました。 – SushiHangover

答えて

6

わかりませんTLS 1.2プロトコル

ここでは、https://developer.android.com/reference/javax/net/ssl/SSLSocket.htmlのように、AndroidはAPIレベル16以降をサポートしていますが、デフォルトでは無効になっており、APIレベル20以降でのみ有効になっています。 Xamarinフォーラムで

誰かがModernHttpClientをフォークし、改善SSLソケットファクトリを追加することにより、APIレベルでのAndroidのために19から16をTLS 1.2を有効にするための解決策を掲載:https://forums.xamarin.com/discussion/63005/modernhttpclient-tls-1-2-android-api-19

これは、それらのAndroidのバージョンであなたの問題を解決する必要があり、 Android 4.1より前のバージョンではあなたを助けません。

0

サーバー側でSSLが壊れたチェーンを持っている場合、基本的に、この問題が来ると、サーバは、このリンクを参照していてくださいより多くの情報のため

、完全なチェーンを含める必要があり、中間ルートのチェーンが含まれています。

https://developer.android.com/training/articles/security-ssl.html

1

あなたはサービスをGoogle PlayからProviderInstallerを使用することができ、それはGoogleが提供する、より最近のものでシステムSSLプロバイダ置き換えます(私はのonCreateでそれを初期化

https://developer.android.com/training/articles/security-gms-provider.html

を)私のアプリケーションのとそのエラーがなくなった。私はあなたがXamarinから何とかそれを行うことができると確信しています。

関連する問題