Error de conexion androidstudio con web service

Publicado en 'Programación' por joel094, 25 Jun 2016.





  1. joel094

    joel094 Miembro frecuente

    Registro:
    14 Oct 2012
    Mensajes:
    213
    Likes:
    7




    Hola a todos , esta es la primera vez que intento conectar un aplicativo móvil con un web service y me da error en la conexion adjunto parte del código de conexion que tengo , ya esta incluido el permiso a internet en el manimfest y estoy usando el emulador Genymotion .

    web service en VS 2015: http://localhost:5303/ServicioClientes.asmx
    el link de mi web service publicado en IIS es : http://localhost/PruebasOncologia/ServicioClientes.asmx

    Código:
     public void login(View view) {
    
            Thread nt = new Thread() {
                String res;
    
                @Override
                public void run() {
                    String namespace = "http://microsoft.com/webservices/";
                    String url = "http://10.0.3.2:5303/ServicioClientes.asmx";
                    String metodo = "LoginUsuario";
                    String soap = "http://microsoft.com/webservices/LoginUsuario";
    
                    SoapObject request = new SoapObject(namespace, metodo);
                    request.addProperty("usuario", et_usuario.getText().toString());
                    request.addProperty("clave", et_clave.getText().toString());
    
                    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
                    envelope.dotNet = true;
    
                    envelope.setOutputSoapObject(request);
                    HttpTransportSE transporte = new HttpTransportSE(url);
                    try {
                        transporte.call(soap, envelope);
                        SoapPrimitive resultado = (SoapPrimitive) envelope.getResponse();
                        res = resultado.toString();
                    } catch (IOException e) {
                        e.printStackTrace();
                    } catch (XmlPullParserException e) {
                        e.printStackTrace();
                    }
    
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            Toast.makeText(MainActivity.this, res, Toast.LENGTH_LONG).show();
                        }
                    });
                }
            };
            nt.start();
        }
    error :
    Código:
    06-25 04:48:40.962 13766-13873/com.example.joel.oncologia W/System.err: java.net.ConnectException: failed to connect to /10.0.3.2 (port 5303) after 20000ms: isConnected failed: ECONNREFUSED (Connection refused)
    06-25 04:48:40.962 13766-13873/com.example.joel.oncologia W/System.err:     at libcore.io.IoBridge.isConnected(IoBridge.java:223)
    06-25 04:48:40.962 13766-13873/com.example.joel.oncologia W/System.err:     at libcore.io.IoBridge.connectErrno(IoBridge.java:161)
    06-25 04:48:40.962 13766-13873/com.example.joel.oncologia W/System.err:     at libcore.io.IoBridge.connect(IoBridge.java:112)
    06-25 04:48:40.962 13766-13873/com.example.joel.oncologia W/System.err:     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
    06-25 04:48:40.962 13766-13873/com.example.joel.oncologia W/System.err:     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
    06-25 04:48:40.962 13766-13873/com.example.joel.oncologia W/System.err:     at java.net.Socket.connect(Socket.java:843)
    06-25 04:48:40.962 13766-13873/com.example.joel.oncologia W/System.err:     at com.android.okhttp.internal.Platform.connectSocket(Platform.java:131)
    06-25 04:48:40.962 13766-13873/com.example.joel.oncologia W/System.err:     at com.android.okhttp.Connection.connect(Connection.java:101)
    06-25 04:48:40.962 13766-13873/com.example.joel.oncologia W/System.err:     at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:294)
    06-25 04:48:40.962 13766-13873/com.example.joel.oncologia W/System.err:     at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255)
    06-25 04:48:40.962 13766-13873/com.example.joel.oncologia W/System.err:     at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206)
    06-25 04:48:40.962 13766-13873/com.example.joel.oncologia W/System.err:     at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345)
    06-25 04:48:40.962 13766-13873/com.example.joel.oncologia W/System.err:     at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:89)
    06-25 04:48:40.962 13766-13873/com.example.joel.oncologia W/System.err:     at com.android.okhttp.internal.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:197)
    06-25 04:48:40.962 13766-13873/com.example.joel.oncologia W/System.err:     at org.ksoap2.transport.ServiceConnectionSE.openOutputStream(ServiceConnectionSE.java:120)
    06-25 04:48:40.962 13766-13873/com.example.joel.oncologia W/System.err:     at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:176)
    06-25 04:48:40.962 13766-13873/com.example.joel.oncologia W/System.err:     at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:114)
    06-25 04:48:40.962 13766-13873/com.example.joel.oncologia W/System.err:     at com.example.joel.oncologia.MainActivity$1.run(MainActivity.java:54)
    06-25 04:48:40.962 13766-13873/com.example.joel.oncologia W/System.err: Caused by: libcore.io.ErrnoException: isConnected failed: ECONNREFUSED (Connection refused)
    06-25 04:48:40.962 13766-13873/com.example.joel.oncologia W/System.err:     at libcore.io.IoBridge.isConnected(IoBridge.java:208)
    06-25 04:48:40.962 13766-13873/com.example.joel.oncologia W/System.err:     ... 17 more
    bueno me parece que ya conecta pero ahora me da este error

    Código:
    06-25 05:23:44.636 31657-31790/com.example.joel.oncologia W/System.err: org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG <HTML>@2:7 in java.io.InputStreamReader@52812944)
    06-25 05:23:44.636 31657-31790/com.example.joel.oncologia W/System.err:     at org.kxml2.io.KXmlParser.require(KXmlParser.java:2056)
    06-25 05:23:44.636 31657-31790/com.example.joel.oncologia W/System.err:     at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:128)
    06-25 05:23:44.636 31657-31790/com.example.joel.oncologia W/System.err:     at org.ksoap2.transport.Transport.parseResponse(Transport.java:116)
    06-25 05:23:44.636 31657-31790/com.example.joel.oncologia W/System.err:     at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:259)
    06-25 05:23:44.636 31657-31790/com.example.joel.oncologia W/System.err:     at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:114)
    06-25 05:23:44.636 31657-31790/com.example.joel.oncologia W/System.err:     at com.example.joel.oncologia.MainActivity$1.run(MainActivity.java:54)
    06-25 05:24:18.155 645-781/system_process D/MobileDataStateTracker: default: setPolicyDataEnable(enabled=true)

    aqui la definición de mi webservice ejecutado en vs

    Código:
    <wsdl:definitions xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://microsoft.com/webservices/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://microsoft.com/webservices/">
    <wsdl:types>
    <s:schema elementFormDefault="qualified" targetNamespace="http://microsoft.com/webservices/">
    <s:element name="LoginUsuario">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="user" type="s:string"/>
    <s:element minOccurs="0" maxOccurs="1" name="password" type="s:string"/>
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="LoginUsuarioResponse">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="LoginUsuarioResult" type="s:string"/>
    </s:sequence>
    </s:complexType>
    </s:element>
    </s:schema>
    </wsdl:types>
    <wsdl:message name="LoginUsuarioSoapIn">
    <wsdl:part name="parameters" element="tns:LoginUsuario"/>
    </wsdl:message>
    <wsdl:message name="LoginUsuarioSoapOut">
    <wsdl:part name="parameters" element="tns:LoginUsuarioResponse"/>
    </wsdl:message>
    <wsdl:portType name="ServicioClientesSoap">
    <wsdl:operation name="LoginUsuario">
    <wsdl:input message="tns:LoginUsuarioSoapIn"/>
    <wsdl:output message="tns:LoginUsuarioSoapOut"/>
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="ServicioClientesSoap" type="tns:ServicioClientesSoap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="LoginUsuario">
    <soap:operation soapAction="http://microsoft.com/webservices/LoginUsuario" style="document"/>
    <wsdl:input>
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="ServicioClientesSoap12" type="tns:ServicioClientesSoap">
    <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="LoginUsuario">
    <soap12:operation soapAction="http://microsoft.com/webservices/LoginUsuario" style="document"/>
    <wsdl:input>
    <soap12:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
    <soap12:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="ServicioClientes">
    <wsdl:port name="ServicioClientesSoap" binding="tns:ServicioClientesSoap">
    <soap:address location="http://localhost:5303/ServicioClientes.asmx"/>
    </wsdl:port>
    <wsdl:port name="ServicioClientesSoap12" binding="tns:ServicioClientesSoap12">
    <soap12:address location="http://localhost:5303/ServicioClientes.asmx"/>
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>
     


  2. drkrap

    drkrap Miembro de bronce

    Registro:
    18 Ene 2011
    Mensajes:
    1,345
    Likes:
    304
    puedes manejar con exepcion e imprimir la excepcion ?
     
  3. joel094

    joel094 Miembro frecuente

    Registro:
    14 Oct 2012
    Mensajes:
    213
    Likes:
    7
    Disculpa pero desconozco esa parte

    Bien después de haber superado esto ahora tengo otro error es el siguiente :

    la solucion a lo anteriror fue cambiar el url por lo siguiente.

    String url = "http://10.0.3.2/PruebasOncologia/ServicioClientes.asmx?WSDL";

    Código:
    FATAL EXCEPTION: Thread-304
                                                                                Process: com.example.joel.oncologia, PID: 23630
                                                                                java.lang.IllegalArgumentException: size <= 0
                                                                                    at java.io.BufferedInputStream.<init>(BufferedInputStream.java:94)
                                                                                    at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:226)
                                                                                    at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:114)
                                                                                    at com.example.joel.oncologia.MainActivity$1.run(MainActivity.java:56)
    
    Todo solucionado gracias .
     
Etiquetas: