2014-06-06 3 views
0

http 주소와 잘 작동하는 ksoap2를 사용하여 wsdl 웹 서비스에서 데이터에 액세스하려고하지만 추가 된 https로 주소를 변경할 때 작동하지 않는 오류가 발생했습니다.ksoap2 with https wsdl 웹 서비스 with 안드로이드

다음 코드를 사용 중입니다.

public VectorAppContact GetContactList(String passCode,String tokenID,List<HeaderProperty> headers){ 


    SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    soapEnvelope.implicitTypes = true; 
    soapEnvelope.dotNet = true; 
    SoapObject soapReq = new SoapObject("http://tempuri.org/","GetContactList"); 
    soapReq.addProperty("passCode",passCode); 
    soapReq.addProperty("tokenID",tokenID);   

    soapEnvelope.setOutputSoapObject(soapReq); 
    //HttpsTransportSE httpTransport=new HttpsTransportSE(url, 443, "", timeOut); 

    HttpTransportSE httpTransport = new HttpTransportSE(url,timeOut); 
    try{ 
     if (headers!=null){ 
      httpTransport.call("http://tempuri.org/ISyncService/GetContactList", soapEnvelope,headers); 
     }else{ 
      httpTransport.call("http://tempuri.org/ISyncService/GetContactList", soapEnvelope); 
      Object result = (Object)soapEnvelope.getResponse(); 
      Log.i("respose get", ""+result.toString()); 
     } 
     Object retObj = soapEnvelope.bodyIn; 
     if (retObj instanceof SoapFault){ 
      SoapFault fault = (SoapFault)retObj; 
      Exception ex = new Exception(fault.faultstring); 
      if (eventHandler != null) 
       eventHandler.Wsdl2CodeFinishedWithException(ex); 
     }else{ 
      SoapObject result=(SoapObject)retObj; 
      if (result.getPropertyCount() > 0){ 
       Object obj = result.getProperty(0); 
       SoapObject j = (SoapObject)obj; 
       VectorAppContact resultVariable = new VectorAppContact(j); 
       return resultVariable; 
      } 
     } 
    }catch (Exception e) { 
     if (eventHandler != null) 
      eventHandler.Wsdl2CodeFinishedWithException(e); 
     e.printStackTrace(); 
    } 
    return null; 
} 

내가 좋아하는 URL http://somthing.com/를 사용하면 다음 작업을하지만, 내가 좋아하는 URL https://somthing.com을 사용하는 경우 그것은 다음과 같은 예외가 있습니다.

06-06 10:14:32.339: W/System.err(2090): org.ksoap2.transport.HttpResponseException: HTTP request failed, HTTP status: 415 
06-06 10:14:32.339: W/System.err(2090):  at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:237) 
06-06 10:14:32.339: W/System.err(2090):  at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:118) 
06-06 10:14:32.339: W/System.err(2090):  at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:113) 
06-06 10:14:32.339: W/System.err(2090):  at com.ht.mysecureclient.SyncService.GetContactList(SyncService.java:118) 
06-06 10:14:32.339: W/System.err(2090):  at com.ht.mysecureclient.SyncService.GetContactList(SyncService.java:99) 
06-06 10:14:32.339: W/System.err(2090):  at com.ht.corpsync.GetData$1.doInBackground(GetData.java:76) 
06-06 10:14:32.339: W/System.err(2090):  at com.ht.corpsync.GetData$1.doInBackground(GetData.java:1) 
06-06 10:14:32.339: W/System.err(2090):  at android.os.AsyncTask$2.call(AsyncTask.java:185) 
06-06 10:14:32.339: W/System.err(2090):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306) 
06-06 10:14:32.339: W/System.err(2090):  at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
06-06 10:14:32.339: W/System.err(2090):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) 
06-06 10:14:32.339: W/System.err(2090):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) 
06-06 10:14:32.339: W/System.err(2090):  at java.lang.Thread.run(Thread.java:1019) 

너무 많이 봤지만 아무 해결책도 찾지 못했습니다. 사전에 감사드립니다.

+0

올바른 'URL'을 사용해야합니다. 당신이 사용하는 url이'https'입니까? – Aniruddha

+0

예 올바른 url을 사용하고 있습니다. 원래의 url은 https://mail.paayatech.ca/CorpSyncWebService/SyncService.svc입니다.이 URL을 예외로 사용하면 예외가 발생합니다.이 URL은 proper.u에서 확인할 수 있습니다. –

+0

나는 또한 같은 problem.Please 당신이 대답을 찾으면 업데이 트가 붙어있다 ... – Srinivasan

답변

1

https에 필요한 HttpsTransportSE 유형을 사용하지 않는 것으로 나타났습니다.

HttpsTransportSE httpTransport = new HttpsTransportSE (url, timeOut);