Tratando de conectar la aplicación de Android a .NET ".svc" webservice y el servidor responde Tipo de soporte no compatible

Estoy intentando conectar la aplicación de Android al servicio web de Axapta que tiene extensión .svc. Estoy usando KSAP 2.5.4 jar con todas las dependencias. A continuación se muestra el código. No pude conectarme al servicio web porque el volcado de respuesta indica que el tipo de medio no es compatible con el servidor.


Servicio web :

Arranque y funcionamiento correctamente mientras se conecta desde Windows Phone


Código:

import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapPrimitive; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransportSE; import org.ksoap2.transport.ServiceConnection; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.util.Log; import android.widget.TextView; public class SoapActivity extends Activity { private static String mSOAPACTION="http://schemas.microsoft.com/dynamics/2008/01/services/LocalEndpointService/read", mOPERATIONNAME="read", WSDL_TARGET_NAMESPACE = "http://schemas.microsoft.com/dynamics/2008/01/services/"; private static String mNAMESPACE="http://schemas.microsoft.com/dynamics/2008/01/services/"; private static String mMETHODNAME="read"; private static String mURL="http://192.168.100.188/MicrosoftDynamicsAXAif50/localendpointservice.svc?wsdl"; private SoapPrimitive result = null; public static Context context=null; private HttpTransportSE httpTransportSE = null; private TextView tv = null; public void onCreate(Bundle savedInstanceState){ SoapSerializationEnvelope envelope = null; SoapObject Request = null; ServiceConnection sc = null; super.onCreate(savedInstanceState); setContentView(R.layout.main); tv = (TextView)findViewById(R.id.tv); try { envelope = new SoapSerializationEnvelope(SoapEnvelope.VER12); envelope.setAddAdornments(false); envelope.encodingStyle = SoapSerializationEnvelope.ENC; envelope.env=SoapSerializationEnvelope.ENV; envelope.implicitTypes = true; Request = new SoapObject(mNAMESPACE, mMETHODNAME); //Request = new SoapObject(mNAMESPACE, mOPERATIONNAME); //Request.addProperty("LocalEndpointServiceReadRequest", "Qing"); envelope.dotNet = true; envelope.setOutputSoapObject(Request); //envelope.addMapping(mNAMESPACE, "UserCredentials",new UserCredendtials().getClass()); /*androidHttpTransport = new AndroidHttpTransport(mURL); androidHttpTransport.debug = true; androidHttpTransport.call(mSOAPACTION, envelope);*/ httpTransportSE = new HttpTransportSE(mURL); /*sc = httpTransportSE.getConnection(); if(sc!=null){ sc.setRequestProperty("Content-Type", "text/xml"); }else{ Log.i(getClass().getSimpleName(),"SC : null."); }*/ httpTransportSE.debug = true; //httpTransportSE.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); httpTransportSE.call(mSOAPACTION, envelope); Object response = envelope.getResponse(); tv.setText(response.toString()); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }finally{ Log.i(getClass().getSimpleName(),"requestDump : "+httpTransportSE.requestDump); Log.i(getClass().getSimpleName(),"responseDump : "+httpTransportSE.responseDump); } } } 

RequestDump :

 <v:Envelope xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:d="http://www.w3.org/2001/XMLSchema" xmlns:c="http://www.w3.org/2001/12/soap-encoding" xmlns:v="http://schemas.xmlsoap.org/soap/envelope/"> <v:Header /> <v:Body> <read xmlns="http://schemas.microsoft.com/dynamics/2008/01/services/" /> </v:Body> </v:Envelope> 

ResponseDump :

El servidor no puede atender la solicitud porque el tipo de medio no es compatible.

Nota : He actualizado el código porque he encontrado que el servicio web es de versión 1.2 de jabón.

Creo que el problema actual está en la URL. La URL del servicio no es:

 http://192.168.100.188/MicrosoftDynamicsAXAif50/localendpointservice.svc?wsdl 

Esa es la URL de la descripción del servicio (archivo WSDL) que acepta sólo las solicitudes HTTP GET (todas las solicitudes SOAP para el servicio WCF son HTTP POST). Su solicitud de comentario muestra que está intentando enviar una solicitud a esta URL, siempre fallará. La dirección URL del servicio está sin la cadena de consulta ?wsdl :

 http://192.168.100.188/MicrosoftDynamicsAXAif50/localendpointservice.svc 
  • Android WebView no sólo de vídeo audio
  • ¿Cuál es la mejor práctica para compartir modelos entre un servidor API WEB y una aplicación cliente Android?
  • Servicio llamado de Android a C # no funciona
  • Conexión de cliente a servidor en aplicaciones de chat como Viber o Telegram
  • WebViewClient no se puede resolver con un tipo
  • Trigger touch callout en iOS / android
  • Retofit2 error java.io.EOFException: Fin de la entrada en la línea 1 columna 1
  • Que cliente es mejor HttpURLConnection o HttpClient en android?
  • Servicio Web SocketTimeOutException provoca inconsistencia de base de datos
  • Soap 1.2 android Proporcione una acción de jabón válida
  • Eliminar márgenes en webView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.