◆インターネット通信の許可
AndroidManufest.xmlに以下のエントリを追加。
<uses-permission android:name="android.permission.INTERNET /">
◆SOAP設定(ksoap2を使用)
・ダウンロード
ksoap2_jar_2.6.0
・デプロイ
eclipse/pluginフォルダにダウンロードしたjarをコピーし、プロジェクトのプロパティ「javaのビルドパス」にて「外部jar追加」を行う。
◆自己証明書HTTPS用の修正(Uncertificated errorの回避方法)
・ダウンロード
kosap2ソースをダウンロードし、以下のソースをプロジェクトに追加する。(各ソース冒頭のpackage名は適宜修正)
HttpsServiceConnectionSE.java
HttpsTransportSE.java
HttpTransportSE.java
ServiceConnection.java
ServiceConnectionSE.java
Transport.java
・全ての証明書を許容する為の修正
HttpsServiceConnectionSE.javaのコンストラクタに以下のコードを追加する。
public HttpsServiceConnectionSE(String host, int port, String file,
int timeout) throws IOException {
try {
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null,
new TrustManager[]{
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
}
},
new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (Exception e) {
e.getMessage();
}
connection = (HttpsURLConnection) new URL(HttpsTransportSE.PROTOCOL, host, port, file).openConnection();
connection.setHostnameVerifier(new AllowAllHostnameVerifier());
updateConnectionParameters(timeout);
}
2012年01月27日
AndroidでSOAP w/ 自己証明書HTTPSエラー回避
posted by rocknfields at 14:48| スマートフォン