3

https経由でksoap2 androidを使用してsoapサーバーに接続できた人はいますか?

「ホスト名 <###> が検証されていません」というエラーが表示され続けます

私がやっている

AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport (URL);
androidHttpTransport.call(SOAP_ACTION, envelope);

Android向けではない他のksoapを振り返ってみると、https経由で接続するための別の呼び出しが表示されますが、Androidバージョンでそれを行う方法が見つかりません。

使用する呼び出しの方法を見つけた、または知っている人はいますか?

助けてくれてありがとう

4

3 に答える 3

6

Android デバイスでは、次の 2 つのことを行う必要があります。

  1. SSL の場合、サーバー証明書を信頼する必要があります。ここのような偽のトラスト マネージャーをインストールすることもできます ( http://groups.google.com/group/android-developers/browse_thread/thread/1ac2b851e07269ba/c7275f3b28ad8bbc?lnk=gst&q=certificateを実行する前に allowAllSSL() を呼び出します)。 SSL 通信/ksoap2 の呼び出し) または、これにもう少し力を入れて、より安全にして、saxos の指示に従ってください。
  2. 次に、 ksoap2-android またはより具体的には、このようなクラス (KeepAlive)HttpsTransportSE を使用する必要がありますnew KeepAliveHttpsTransportSE(host, port, file, timeout);。パラメータは URL オブジェクトに入ります。たとえば、Jira インストールにアクセスするには、次のようになります。new KeepAliveHttpsTransportSE("host.whatever", 443, "/rpc/soap/jirasoapservice-v2", 1000)

ところで、「Android デバイス」について書きました。最初に J2SE 環境でテストするのが便利だと思うからです。ここでは、(KeepAlive)HttpsTransportSE が lib にありません (ksoap2-j2se-full-2.1.2 を使用しました)。 .jar)。ksoap2-android から HttpsTransportSE、KeepAliveHttpsTransportSE、および HttpsServiceConnectionSE の 3 つのクラスのソースを取得し、それらを J2SE プロジェクトに配置して使用するだけです。これは機能し、未知の Web サービスで最初のステップを実行するための生産性の向上です (Web サービスと ksoap2 の微調整方法を知っている場合、それは役に立ちませんが、ksoap2 とその android を初めて使用する私にとっては便利でした)。振り落とす)。

于 2011-01-24T06:33:11.837 に答える
2

httpsをサポートするandroid ksoap2 2.5.2が出ました

http://code.google.com/p/ksoap2-android/

問題は、それをどのように使用するのかよくわからないことです

HttpsTransportSE aht = new HttpsTransportSE(host, port, file, timeout)

「ファイル」パラメータには何を入力すればよいですか? 誰かアイデアはありますか?

ところで AndroidHttpTransport は ksoap2 の最新バージョンでは非推奨です

于 2010-11-24T12:43:36.780 に答える
2

ファイル名を空の文字列 ("") として設定できます。ksoap のソース コードを見ると、パラメーターが java.net.URL に渡され、Sun Javadoc からファイル (「ホスト上のファイル」) が参照されます。SOAP https 呼び出しに ksoap2 を使用することをあきらめました。問題は、Android が SSL 接続を処理する方法にあります。唯一の解決策は、SSL 証明書を格納するためのローカル キーストアを作成し、証明書を使用するために Apache Httpclient の周りにラッパーを作成することです。したがって、REST を使用してこれらの呼び出しを実装することもできます。それが Google が私たちに望んでいることだと思います。

于 2010-12-14T12:10:14.113 に答える