1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Consumir webService c# no android

Estou com um problema para acessar um webservice feito em c# no android, não consigo pegar o retorno do web metodo no android, não sei mais o q fazer segue o codigo abaixo.

using System.Collections.Generic;
using System.Web;
using System.Web.Services;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

public class Service : System.Web.Services.WebService
{
    public Service () {

     }

    [WebMethod]
    public string HelloWorld() {
        return "Hello World teste";
    }

}

//==================================

<%@ WebService Language="C#" CodeBehind="~/App_Code/Service.cs" Class="Service" %>

//==================================

<?xml version="1.0"?>
<!-- 
    Note: As an alternative to hand editing this file you can use the 
    web admin tool to configure settings for your application. Use
    the Website->Asp.Net Configuration option in Visual Studio.
    A full list of settings and comments can be found in 
    machine.config.comments usually located in 
    \Windows\Microsoft.Net\Framework\vx.x\Config 
-->
<configuration>

    <appSettings/>
    <connectionStrings/>
    <system.web>
        <!-- 
            Set compilation debug="true" to insert debugging 
            symbols into the compiled page. Because this 
            affects performance, set this value to true only 
            during development.
        -->
        <compilation debug="false">
        </compilation>
        <!--
          The <authentication> section enables configuration 
          of the security authentication mode used by 
          ASP.NET to identify an incoming user. 
        -->
        <authentication mode="Windows" />
        <!--
           The <customErrors> section enables configuration 
           of what to do if/when an unhandled error occurs 
           during the execution of a request. Specifically, 
           it enables developers to configure html error pages 
           to be displayed in place of a error stack trace.

           <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
             <error statusCode="403" redirect="NoAccess.htm" />
             <error statusCode="404" redirect="FileNotFound.htm" />
           </customErrors>
        -->
    </system.web>

</configuration>


//=========================================================================
        private static final String SOAP_ACTION = "http://tempuri.org/HelloWorld";
    private static final String METHOD_NAME = "HelloWorld";
    private static final String NAMESPACE = "http://tempuri.org";
    private static final String URL = "http://192.168.1.106:53008/WebSite7/Service.asmx";



private void autenticaServer() throws Exception {
        // HttpPost request = new
        // HttpPost("http://localhost:53008/WebSite7/Service.asmx?op=HelloWorld");

        new Thread() {

            public void run() {


                try {
                    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);    

                    // Cria o envelope com o objeto SOAP
                    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
                    envelope.setOutputSoapObject(request);

                    HttpTransportSE httpTransport = new CustomHttpTransport(URL);

                    // Faz a requisição
                    httpTransport.call(SOAP_ACTION, envelope); //quando chega aqui ele para e me parece ficar aguardando

                    // Recupera o resultado
                    Object soma = envelope.getResponse();
                    System.out.println(soma);
                } catch (SoapFault e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (XmlPullParserException e) {
                    e.printStackTrace();
                }


            }
        }.start();
    }


//==============================================================

public class CustomHttpTransport extends HttpTransportSE {
    private static final String CATEGORIA = "livro";

    public CustomHttpTransport(String s) {
        super(s);
    }

    @Override
    public void call(String s, SoapEnvelope soapenvelope) throws IOException, XmlPullParserException {
        // Aapenas para logar o xml elemento envelope do SOAP
        byte bytes[] = createRequestData(soapenvelope);
        String envelope = new String(bytes);
        Log.i(CATEGORIA, "Envelope: " + envelope);

        super.call(s, soapenvelope);
    }
}

//===========================================

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="br.com.edu.geo"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-permission  android:name="android.permission.INTERNET"/>

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:name=".GEO"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="br.com.edu.geo.Location"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
  • Testei tambem um servico WCF e acontece a mesma coisa, isso chamando com httpget do android, cara pode ser alguma configuração do visual studio, pq não tem logica, eu to fazendo tudo certinho peguei até exemplo pronto na internet e não funciona, não sei o que eu faço mais.

    danilorangelmg   29 de nov de 2013
  • Você publicou o web-service no IIS? pergunto pois se você não publicou não irá conseguir acessar os web method na rede, pois o serviço que o visual studio inicia serve somente para acesso local! Quando precisei integrar web-service .net com android utilizei a biblioteca KSOAP2, existem exemplos bons na web.

    Espero ter ajudado!

    esangiovo   03 de dez de 2013
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags .net asp.net-mvc c# java android webservices ou faça a sua própria pergunta.