Вызовите веб-сервис и верните результат на Android / Eclipse методом SOAP.

1

В настоящее время я потребляю веб-сервис от android по методу SOAP. Мне нужно вызвать веб-сервис и вернуть результат на андроиде /eclipse.ie.I нужно получить данные от edittext и вернуть соответствующее значение.

Пожалуйста, найдите мой код для справки.

веб-метод

public class GetName {
public String GetName(String a){
return(a);
}  }

ПРИМЕЧАНИЕ. Чтобы избежать исключений операции сокета из основного потока активности, я написал отдельные классы и изолировал связанные с мылом функции.

Caller.java

public class Caller  extends Thread 
{

public AlertDialog ad;
public CallSoap cs;
public int a;

public void run()
{
    try
    {
    cs=new CallSoap();  
    String resp=cs.Call(a);
    MySOAPCallActivity.rslt=resp;
    }catch(Exception ex)
    {
        MySOAPCallActivity.rslt=ex.toString();  
    }
    }    }

CallSOAP

public class CallSoap 
{
public final String SOAP_ACTION = "http://tempuri.org/GetName";

public  final String OPERATION_NAME = "GetName";

public  final String WSDL_TARGET_NAMESPACE = "http://tempuri.org/";

public  final String SOAP_ADDRESS = "http://122.248.240.105:234/Service1.asmx?WSDL";
public CallSoap()
{

}

public String Call(int a)
{

    SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE,OPERATION_NAME);
    PropertyInfo pi=new PropertyInfo();
    pi.setName("a");
    pi.setValue(a);
    pi.setType(Integer.class);
    request.addProperty(pi);

        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
        SoapEnvelope.VER11);
        envelope.dotNet = true;

        envelope.setOutputSoapObject(request);

        HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS);
        Object response=null;
        try

        {

            httpTransport.call(SOAP_ACTION, envelope);

            response = envelope.getResponse();
            }

            catch (Exception exception)

            {

                response=exception.toString();

            }


    return response.toString();
    }
 } 

MySOAPCallActivity

public class MySOAPCallActivity extends Activity 
    {
public static String rslt="";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button b1=(Button)findViewById(R.id.btn_getvalues);
    final  AlertDialog ad=new AlertDialog.Builder(this).create();

     b1.setOnClickListener(new OnClickListener() {

        public void onClick(View arg0) {

        try
            {

            EditText ed1=(EditText)findViewById(R.id.et_1);

            String ed1str = ed1.getText().toString().trim();
            int a = Integer.parseInt(ed1str);

            rslt="START";           
            Caller c=new Caller();
            c.a=a;
            c.ad=ad;
            c.join();
            c.start();
            while(rslt=="START")
            {
                try
                {
                    Thread.sleep(5);

                }catch(Exception ex)
                {

                }
            }
           ad.setTitle("");
            ad.setMessage(rslt);

            }catch(Exception ex)
            {
                ad.setTitle("Error!");
                ad.setMessage(ex.toString());

            }
           ad.show();   
        }
    });
    }    }

ВЫХОДНЫЙ ЭКРАН

Изображение 174551

Примечание. Если я вхожу в vlaue "0005", он должен вернуть строку "Vivek" в браузере.

Но на моем экране вывода это показано как "Имя не найдено". Я хочу вернуть соответствующее значение в соответствии с введенным пользователем. Пожалуйста, дайте мне знать, как исправить мой источник.

Спасибо за ваше драгоценное время!..

  • 0
    Из кода похоже, что отображаемое сообщение - это ответ, полученный от вашего сервиса. Можете ли вы, пожалуйста, добавить журнал и вывести значение переменной 'a', т.е. ваш запрос и полученный ответ в методе CallSoap.Call (...). Пожалуйста, обновите / предоставьте эти журналы здесь. Из этого мы можем сделать вывод, идет ли запрос неправильно или ответ неправильный.
Теги:
web-services

1 ответ

1
Лучший ответ

Пожалуйста, используйте мой опыт. Я думаю, это поможет вам. У меня было много проблем, выполняя ту же задачу. Но, наконец, я сделал то, что было дано в блоге. http://www.insightforfuture.blogspot.com/search/label/Android

Ещё вопросы

Сообщество Overcoder
Наверх
Меню