簡體   English   中英

Android ksoap2通過https

[英]Android ksoap2 via https

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

我一直收到“主機名<###>未經驗證”的錯誤

我正在做

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

顯然回顧其他ksoap不是為了你的安慰我們給我們一個不同的呼叫通過https連接,但我找不到在Android版本中做到這一點的方法。

有人找到了一種關於或知道使用呼叫的方法嗎?

謝謝你的幫助

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

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

順便說一句:我在“Android設備”上寫道,因為我發現在J2SE環境中首先測試這些東西是有用的,這里lib中缺少(KeepAlive)HttpsTransportSE的東西(我使用了ksoap2-j2se-full-2.1.2) 。罐)。 只需從ksoap2-android獲取三個類HttpsTransportSE,KeepAliveHttpsTransportSE和HttpsServiceConnectionSE的源代碼,並將它們放入J2SE項目並使用它們。 它的工作原理是提高生產力,以獲得未知Web服務的第一步(如果您知道Web服務以及如何調整ksoap2,它沒用,但它對我來說很方便,因為我是ksoap2及其android的新手分拆)。

android ksoap2 2.5.2是支持https的

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

問題是我不太確定如何使用它

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

我為“文件”參數輸入了什么? 有誰有任何想法?

btw AndroidHttpTransport在最新版本的ksoap2中已棄用

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM