2010-02-11 3 views
3

https를 통해 ksoap2 android를 사용하여 비누 서버에 연결할 수있는 사람이 있습니까?https를 통한 안드로이드 ksoap2

나는 오류가 계속 그 "호스트 이름 < ###> 확인되지 않았다"나는 분명히

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

을하고 안드로이드 사용자, 표준에 대한하지 않은 다시 다른 ksoap에서 찾고 있어요

우리에게 https를 통해 연결하는 다른 호출,하지만 안드로이드 버전에서 할 수있는 방법을 찾을 수 없습니다.

누구나 전화 사용 방법을 찾았거나 사용 방법을 알고 있습니까? 당신이 도움을

감사

+0

해결책을 찾았습니까? 나는 여기에도 같은 문제가있다. HTTPS를 통해 SOAP 요청을 보내는 대안이 있습니까? – RobGThai

+0

아니요. stil havnt는 rest/json으로의 이동을 제외하고 답변을 찾았습니다. –

답변

2

안드로이드 ksoap2 2.5.2 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에서는 매개 변수 인 "호스트의 파일"을 참조합니다. SOAP https 호출에 ksoap2를 사용하는 것을 포기했습니다. 안드로이드가 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

글쎄, 당신은 안드로이드 장치에서 두 가지 작업을 수행해야합니다 : SSL에 대한

  1. 당신은 서버 인증서를 신뢰해야합니다. SSL 통신/ksoap2 호출 전에 여기 (http://groups.google.com/group/android-developers/browse_thread/thread/1ac2b851e07269ba/c7275f3b28ad8bbc?lnk=gst&q=certificate)와 같은 위조 된 트러스트 관리자를 설치하고 allowAllSSL()을 호출하거나 더 많은 노력을 기울여보다 안전하고 saxos의 지시를 따르십시오.
  2. 그런 다음 ksoap2-android 또는보다 구체적으로이 클래스 (KeepAlive) HttpsTransportSE를 new KeepAliveHttpsTransportSE(host, port, file, timeout);과 같이 사용해야합니다. 매개 변수는 URL 객체로 들어갑니다. JIRA의 설치에 액세스 할 수는 Btw는 new KeepAliveHttpsTransportSE("host.whatever", 443, "/rpc/soap/jirasoapservice-v2", 1000)

같은 뭔가 : 나는 "안드로이드 기기"에 쓴, 나는 그것이 유용한 물건이없는 여기에 J2SE 환경과 (KeepAlive를) HttpsTransportSE에 먼저 물건을 테스트하기 위해 찾을 수 있기 때문에 lib에서 (나는 ksoap2-j2se-full-2.1.2.jar를 사용했다.) ksoap2-android에서 HttpsTransportSE, KeepAliveHttpsTransportSE 및 HttpsServiceConnectionSE의 세 클래스에 대한 소스를 가져 와서 J2SE 프로젝트에 넣고 사용하십시오. 알 수없는 웹 서비스로 첫 번째 단계를 밟을 수있는 생산성 향상입니다 (웹 서비스를 알고 ksoap2를 조정하는 방법은 아무 쓸모가 없지만 ksoap2를 처음 사용하고 나면 안드로이드를 사용하기에 편리했습니다. 스핀 - 오프).

+0

감사. 그것은 매력처럼 작용했습니다. –

+1

여기에서 구현했습니다. https://gist.github.com/908048 –

관련 문제