・トランスポートで「HttpsTransportSE」を使うだけ。
・オレオレ証明だと、APIでエラーになり使えない。
→テストができない!
実機 :comodoのフリーSSL(3か月間のみ)を使う
エミュ:Androidをroot化してルート証明書を入れる。
KSOAPの一部(HttpsServiceConnectionSE)を作り替える。
全てのHost名を検証にパスするよう素通しのHostnameVerifierを設定する。
※補足:Tomcatを自己証明書でSSLにする方法
JDK標準のkeystoreを使う。
対話形式で色々聞かれるので入力していき、公開鍵を生成する。
これをTomcatに設定すればOK
詳細はここ→http://buzzmemo.blogspot.com/2010/03/tomcatssl.html
※補足:Androidエミュへのルート証明書インストール
事前に…証明書をブラウザからエクスポートしておく必要あり。
BKSのライブラリをDLしてパス通しておく必要あり。
詳細はここ→http://www.glamenv-septzen.net/view/969
↓コマンド例
emulator -avd 2.2 -partition-size 128
adb pull /system/etc/security/cacerts.bks
keytool -keystore cacerts.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass changeit -importcert -trustcacerts -alias shomeisho -file shomeisho.crt
adb remount
adb push cacerts.bks /system/etc/security/cacerts.bks
2011年7月13日水曜日
ksoap2 android のコーディングメモ
だいたい次のような流れ実装
・SOAPの設定値宣言
ネームスペース、メソッド名、soapアクション、リクエストURL
・パラメータの作成
プリミティブ指定とオブジェクト指定がある。
パラメータに属性を付与するためにPropertyInfoオブジェクトを作成し、それにパラメータをセットします。
同じネームスペースのパラメータは、同じネームスペースを設定するといいかんじにしてくれる。
・SOAPエンベロープ作成(中身)
・HTTPトランスポート作成(外側)
・HTTPヘッダ作成(任意)
・リクエスト実施(httpTransp.call(SOAP_ACTION, envelope, headerList))
HTTPトランスポートに、soapアクション、SOAPエンベロープ、HTTPヘッダを渡してcallするのみ
・レスポンス抽出(envelope.getResponse())
レスポンスのタグの数によって勝手に変換されます。
0…null
1…オブジェクト単独で帰ってくる。
2以上…Vectorクラスにレスポンスのオブジェクトが順番に格納さる。
・SOAPの設定値宣言
ネームスペース、メソッド名、soapアクション、リクエストURL
・パラメータの作成
プリミティブ指定とオブジェクト指定がある。
パラメータに属性を付与するためにPropertyInfoオブジェクトを作成し、それにパラメータをセットします。
同じネームスペースのパラメータは、同じネームスペースを設定するといいかんじにしてくれる。
・SOAPエンベロープ作成(中身)
・HTTPトランスポート作成(外側)
・HTTPヘッダ作成(任意)
・リクエスト実施(httpTransp.call(SOAP_ACTION, envelope, headerList))
HTTPトランスポートに、soapアクション、SOAPエンベロープ、HTTPヘッダを渡してcallするのみ
・レスポンス抽出(envelope.getResponse())
レスポンスのタグの数によって勝手に変換されます。
0…null
1…オブジェクト単独で帰ってくる。
2以上…Vectorクラスにレスポンスのオブジェクトが順番に格納さる。
ksoap2 android の インストール
▼Maven化している場合
・pom.xmlに下記を追加のみ
<project>
...
<repositories>
<repository>
<id>googlecode-ksoap2-android</id>
<name>googlecode-ksoap2-android</name>
<url>http://ksoap2-android.googlecode.com/svn/m2-repo</url>
</repository>
</repositories>
...
<dependencies>
<dependency>
<groupId>com.google.code.ksoap2-android</groupId>
<artifactId>ksoap2-android</artifactId>
<version>2.5.7</version>
</dependency>
</dependencies>
...
</project>
▼Maven化してない場合
・動くけどEclipseのコンソールにビルドの度に警告が出る。
・サイトからライブラリをDLして、Androidプロジェクトにライブラリとして取り込む。
・サイトのライブラリの場所がわかりずらい。
「http://code.google.com/p/ksoap2-android/」アクセス
「downloads」クリック
「http://code.google.com/~中略~/ksoap2-android-assembly-2.5.7-jar-with-dependencies.jar」クリック
「View raw file」クリックしてDL
・pom.xmlに下記を追加のみ
<project>
...
<repositories>
<repository>
<id>googlecode-ksoap2-android</id>
<name>googlecode-ksoap2-android</name>
<url>http://ksoap2-android.googlecode.com/svn/m2-repo</url>
</repository>
</repositories>
...
<dependencies>
<dependency>
<groupId>com.google.code.ksoap2-android</groupId>
<artifactId>ksoap2-android</artifactId>
<version>2.5.7</version>
</dependency>
</dependencies>
...
</project>
▼Maven化してない場合
・動くけどEclipseのコンソールにビルドの度に警告が出る。
・サイトからライブラリをDLして、Androidプロジェクトにライブラリとして取り込む。
・サイトのライブラリの場所がわかりずらい。
「http://code.google.com/p/ksoap2-android/」アクセス
「downloads」クリック
「http://code.google.com/~中略~/ksoap2-android-assembly-2.5.7-jar-with-dependencies.jar」クリック
「View raw file」クリックしてDL
登録:
投稿 (Atom)