2012-06-06 6 views
5

Moja usługa sieci .net jest podobno działająca z mydłem 1.2 (sprawdzając .wsdl) i próbując uzyskać dostęp do serwisu internetowego helloworld do testowania, ale napotkałem błędy. Próbuję to zrobić poprzez emulator przy okazji.soap 1.2 android Proszę podać poprawną akcję mydła

Kiedy używam wersji mydła 1.2, pojawia się błąd, że "nie można obsłużyć żądania bez poprawnego parametru akcji. Proszę podać poprawne mydło" Chcę wiedzieć, czego mi brakuje i co powinienem zrobić .

Dziękujemy!

Czego już zrobione:

  • Dodaj zgodę na Androida korzystać z internetu
  • Zmiana od Soap wersji 1.1 i 1.2
  • Zmiana od SoapObject do Object (zarówno mydła 1.1 i 1.2)
  • Używane 10.0.2.2 dla emulatora
  • sprawdzane pod kątem błędów w pisowni w adresach i nazwy metody

Moi kody:

private static final String NAMESPACE = "http://localhost/WebService/"; 
private static final String URL = "http://10.0.2.2:1672/Eventurous/WsEventurousMobile.asmx"; 
private static final String HelloWorld_SOAP_ACTION = "http://localhost/WebService/HelloWorld"; 
private static final String METHOD_NAME1 = "HelloWorld"; 



... 
... 

public static String GetHelloWorld() { 

    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME1); 
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
    SoapEnvelope.VER12); 
    envelope.dotNet = true; 
    envelope.setOutputSoapObject(request); 
    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL,60000); 

    try { 
    androidHttpTransport.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); 
    androidHttpTransport.call(HelloWorld_SOAP_ACTION, envelope); 

    SoapObject response = (SoapObject)envelope.getResponse(); 
    String result = response.getProperty(0).toString(); 

    return result; 
    } catch (Exception e) { 
    return e.toString(); 
    } 

} 

Błąd wersji Soap 1,2

Code: soap:Sender, Reason: System.Web.Services.Protocols.SoapException: Unable to handle request without a valid action parameter. Please supply a valid soap action. 

at System.Web.Services.Protocols.Soap12ServerProtocolHelper.RouteRequest() 

at System.Web.Services.Protocols.SoapServerProtocol.RouteRequest(SoapServerMessage message) 

at System.Web.Services.Protocols.SoapServerProtocol.Initialize() 

at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean 

Błąd wersji Soap 1,1

SoapFault - faultcode: 'soap:Client' faultstring: 'System.Web.Services.Protocols.SoapException: Server did not recognize the value of HTTP Header SOAPAction: http://localhost/WebService/HelloWorld. 

at System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest() 

at System.Web.Services.Protocols.SoapServerProtocol.RouteRequest(SoapServerMessage message) 

at System.Web.Services.Protocols.SoapServerProtocol.Initialize() 

at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)' faultactor: 'null' detail: [email protected] 

Odpowiedz

0

użycie SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

zamiast

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
    SoapEnvelope.VER12); 

i usunąć tę linię androidHttpTransport.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"utf-8\"?>");

i zamiast SoapObject response = (SoapObject)envelope.getResponse();

użytku SoapObject response = (SoapObject)envelope.bodyIn;

Pomoże you.If wciąż błąd następnie Napisz do mnie.

Powiązane problemy