Pregunta Android con el servicio web WCF utilizando ksoap2 - error SoapFault - error: "a: ActionNotSupported"


He hecho un proyecto simple para llamar al servicio web wcf usando ksoap2. Pero cuando llama envelope.getResponse (); da error diciendo ————–

"SoapFault - error de código:   'A: ActionNotSupported' falla:   ‘El mensaje con Acción‘ GetString ’   no puede ser procesado en el receptor,   Debido a una falta de coincidencia de ContractFilter en   El EndpointDispatcher. Esto podría ser   debido a una falta de correspondencia del contrato   (Acciones no coincidentes entre el remitente y   receptor) o un enlace / seguridad   desajuste entre el remitente y el   receptor. Comprobar que el remitente y   El receptor tiene el mismo contrato y   El mismo enlace (incluida la seguridad).   requisitos, por ejemplo Mensaje, Transporte,   Ninguno). Detalle de 'faultactor:' null ':   nulo"

Estoy ejecutando el servicio web en localhost.

por favor ayúdame a alguien

es este valor correcto que he asignado,

private static final String SOAP_ACTION = “GetString”;
private static final String OPERATION_NAME = “GetString”;
private static final String WSDL_TARGET_NAMESPACE = “http://tempuri.org/”;
private static final String SOAP_ADDRESS = “http://10.0.2.2:14089/Service1.svc?wsdl”;

5
2018-06-29 15:00


origen


Respuestas:


No sabemos si estos valores son correctos: WSDL debe indicarle cuál es la acción SOAP correcta para llamar al GetString operación.

Abra WSDL en el navegador web (esa es la dirección que está asignando en SOAP_ADDRESS) y encontrar algo como:

<wsdl:binding name="..." type="...">
  ...
  <wsdl:operation name="GetString">
     <soap:operation soapAction="HERE_IS_CORRECT_ACTION" />
     <wsdl:input>...</wsdl:input>
     <wsdl:output>...</wsdl:output>
  </wsdl>
  ...
</wsdl:binding>

Por cierto. Cuando llames al servicio deberías usar URL sin ?wsdl cadena de consulta.


11
2018-06-29 15:47



También puede verificar el actionName usando SoapUI. Primero genere una solicitud de ejemplo proporcionando una dirección wsdl y luego encuentre su solicitud. Cuando lo encuentre, seleccione la pestaña "Sin procesar" en el lado izquierdo de la ventana con solicitud. Usted puede encontrar allí encabezados http. Una de las posiciones del encabezado es "SOAPAction". Es el nombre que estamos buscando.


2
2017-08-24 06:55