2010-02-11 135 views
3

有任何人能夠通過https使用kso​​ap2 android連接到肥皂服務器?Android ksoap2通過https

我不斷收到錯誤「主機名< ###>未驗證」

我做

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

顯然回頭看其他KSOAP這是不爲Android您更換給我們一個不同的調用來通過https連接,但我無法找到一種方式來執行它的android版本。

任何人找到了一種方式或知道使用電話?

感謝您的幫助

+0

您是否找到了解決方案?我在這裏遇到同樣的問題。 有通過HTTPS發送SOAP請求的替代方法嗎? – RobGThai

+0

不,我仍然找到了答案,除了移動休息/ json –

回答

2

的Android 2.5.2 ksoap2是出於支持HTTPS

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

的問題是我不很清楚如何使用它

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

什麼我應該輸入「文件」參數嗎?任何人有任何想法?

BTW AndroidHttpTransport在ksoap2

+1

請參閱參數文檔https://gist.github.com/908048 ...我將在稍後添加到javadoc –

2

最新的版本已經過時,您可以設置文件名作爲空字符串(「」)。查看ksoap的源代碼,它將參數傳遞給java.net.URL,並從Sun Javadoc中將其引用到文件 - 「主機上的文件」。 我放棄了嘗試使用kso​​ap2進行SOAP https調用。問題在於Android處理SSL連接的方式。唯一的解決方案似乎是創建一個本地密鑰庫來存儲SSL證書並在Apache Httpclient周圍編寫一個包裝來使用證書。所以我不妨使用REST來實現這些調用。猜猜這就是Google希望我們做的。

+0

如果您要建立安全連接到REST服務與本地密鑰庫,你可以看看我的博客條目,地址爲http://blog.antoine.li/index.php/2010/10/android-trusting-ssl-certificates/ 它提供了詳細的步驟逐步描述。 希望它有幫助 – saxos

+0

謝謝它幫助了很多。在尋找類似的東西時我確實看到了它。在清理我的代碼後,我會將一些評論添加到您的博文中。 –

+0

謝謝。歡迎發表評論;) – saxos

6

好吧,你需要做的Android設備上的兩件事情:

  1. 對於SSL,你需要信任服務器證書。你可以安裝一個像這裏這樣的假信任管理器(http://groups.google.com/group/android-developers/browse_thread/thread/1ac2b851e07269ba/c7275f3b28ad8bbc?lnk=gst&q=certificate,然後在你進行任何SSL通信/調用ksoap2之前調用allowAllSSL()),或者在這裏安裝一些更多的工作,讓它更安全並遵循saxos的指示。
  2. 然後,您需要使用kso​​ap2-android或更具體的類(KeepAlive)HttpsTransportSE像這樣new KeepAliveHttpsTransportSE(host, port, file, timeout);。參數進入URL對象,例如訪問吉拉安裝它像new KeepAliveHttpsTransportSE("host.whatever", 443, "/rpc/soap/jirasoapservice-v2", 1000)

順便說一句:我在「Android設備」中寫道,因爲我覺得它有用先試的東西在J2SE環境和這裏的(保持活動)HttpsTransportSE東西丟失在lib(我用ksoap2-j2se-full-2.1.2.jar)。只需從ksoap2-android獲取三個類HttpsTransportSE,KeepAliveHttpsTransportSE和HttpsServiceConnectionSE的源代碼,並將它們放入您的J2SE項目中並使用它們即可。它的工作原理是提高生產力,以獲得未知Web服務的第一步(如果您知道Web服務以及如何調整ksoap2,這是沒用的,但對我來說這很方便,因爲我是ksoap2及其android的新手分拆)。

+0

謝謝。這就像一個魅力。 –

+1

我在這裏實現了這個https://gist.github.com/908048 –