2017-04-27 4 views
0

Je développe une application Android avec des services de savon. Mais, cela ne fonctionne pas quand j'ai ajouté la propriété de demande. Est-ce que je manque quelque chose?Les référenceurs d'objets ne sont pas définis avec ksoap2

public class WebServiceCallerImp { 

private static final String METHOD_NAME = "GetForexStocksandIndexesInfo"; 
private static final String NAMESPACE = "http://tempuri.org/"; 
private static final String SOAP_ACTION = "http://tempuri.org/GetForexStocksandIndexesInfo"; 
private static final String URL = "http://mobileexam.veripark.com/mobileforeks/service.asmx"; 


public static String GetForex() { 

    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 

    request.addProperty("IsIPAD", "true"); 
    request.addProperty("DeviceID", "test"); 
    request.addProperty("DeviceType", "ipad"); 
    request.addProperty("RequestKey", "%%UmVxdWVzdElzVmFsaWQyNzowNDoyMDE3IDEzOjEy%%"); 
    request.addProperty("Period", "Month"); 


    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    envelope.dotNet = true; 
    envelope.setOutputSoapObject(request); 


    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 
    androidHttpTransport.debug = true; 

    try { 
     androidHttpTransport.call(SOAP_ACTION, envelope); 
     SoapObject response = (SoapObject) envelope.getResponse(); 
     System.out.println("output: " + response.toString()); 
     return response.toString(); 
    } catch (Exception e) { 
     System.out.println("@@@@: " + e.toString()); 

    } 
    return "null"; 
} 

Réponse

Object reference not set to an instance of an object. at Denizbank.IpadApplication.Integration.ForexIntegration.StocksandIndexes.GetForexStocksandIndexesInfo(StocksandIndexesRequest req) 

à Denizbank.IpadApplication.Service.Service.GetForexStocksandIndexesInfo (Demande StocksandIndexesRequest)

Savon Demande

enter image description here

Où puis-je faire des erreurs? Aidez-moi, s'il vous plaît.

+0

Je suppose que le problème avec supprime celui-là.Parce que vous ne commencez pas cette balise et ne placez qu'une partie de balise de fin. –

+0

thanx andy, mais ne fonctionne pas –

+0

voir ma réponse cela fonctionne pour moi.je fais cette chose et ça marche pour moi. –

Répondre

0

Essayez celui-ci Je fais le même code et aucune erreur dans mon projet.

SoapSerializationEnvelope soapEnvelope = null; 
    soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    new MarshalBase64().register(soapEnvelope); 
    soapEnvelope.implicitTypes = true; 
    soapEnvelope.dotNet = true; 
    SoapPrimitive result = null; 

    soapEnvelope.setOutputSoapObject(request); 

    HttpTransportSE aht = new HttpTransportSE(SERVER_URL, Const.HTTP_TIMEOUT); 
    aht.debug = Const.LOG; 

    try { 
     Log.print("SOAP_ACTION::" + SOAP_ACTION, "SERVER_URL::" + SERVER_URL); 
     Log.print("Request", "" + aht.requestDump); 

     aht.call(SOAP_ACTION, soapEnvelope); 
     Log.print("Response", "" + aht.responseDump); 
     result = (SoapPrimitive) soapEnvelope.getResponse(); 

     Log.print("-----------Request :: ", "" + aht.requestDump); 
     Log.print("=====================FINAL RESPONSE================"); 
     Log.print("RESPONSE :: " + result); 
    } catch (UnknownHostException e) { 
     if (Const.LOG) Log.print("UnknownHostException", "" + e); 
     if (Const.LOG) Log.print("Exception in util", e.getMessage()); 
     soapEnvelope = null; 
    } catch (IOException e) { 
     if (Const.LOG) Log.print("IOException", "" + e); 
     e.printStackTrace(); 
     soapEnvelope = null; 
    } catch (XmlPullParserException e) { 
     if (Const.LOG) Log.print("XmlPullParserException", "" + e); 
     e.printStackTrace(); 
     soapEnvelope = null; 
    } catch (OutOfMemoryError e) { 
     if (Const.LOG) Log.print("OutOfMemoryError", "" + e); 
     e.printStackTrace(); 
     soapEnvelope = null; 
     result = null; 
    } catch (Exception e) { 
     if (Const.LOG) Log.print("Exception", "" + e); 
     Log.print("Utils", e); 
     e.printStackTrace(); 
     soapEnvelope = null; 
    } finally { 
     soapEnvelope = null; 
     request = null; 
     SOAP_ACTION = null; 
     SERVER_URL = null; 
     aht = null; 
    } 

La valeur de Const.LOG est vraie.

+0

J'ai essayé la solution. Mais la réponse est nulle. Pourriez-vous tester avec mes paramètres dans votre solution? –

+0

J'ai aussi essayé cette réponse, toujours pas de réponse correcte pour le moment. – Thracian