如何调用ASMX Web服务威盛在Android应用程序的JSON对象 [英] How to Call ASMX Web service VIA JSON object in android Application

查看:105
本文介绍了如何调用ASMX Web服务威盛在Android应用程序的JSON对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我开发一个Android应用程序... 我想通过这些数据传递给 ASMX web服务 JSON对象,我想Web服务的响应和访问数据的应用程序。

谁能告诉我它是如何可能?

我的code是:

 发myThread =新的Thread()
{
    @覆盖
    公共无效的run()
    {
        SoapObject请求=新SoapObject(命名空间METHOD_NAME);
        request.addProperty(电子邮件,S1);
        request.addProperty(密码,S2);
        SoapSerializationEnvelope包=新SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.setOutputSoapObject(要求);
        envelope.dotNet = TRUE;
        尝试 {
            HttpTransportSE androidHttpTransport =新HttpTransportSE(URL);
            androidHttpTransport.call(SOAP_ACTION,包);
            SoapObject结果=(SoapObject)envelope.bodyIn;
            如果(结果!= NULL){
                et_unm.setText(result.getProperty(0)的ToString());
            } 其他
                Toast.makeText(getApplicationContext(),不回应,Toast.LENGTH_LONG).show();
        }赶上(例外五){
            Log.v(登录::,异常 - >中+ e.toString());
            e.printStackTrace();
        }
    }
};
myThread.start();
 

解决方案

而不是使用KSOAP库,你可以做到这一点的内置Apache类,如HttpClient的,HTTPGET,HttpPost,等等。

例如:你要发送以下JSON对象:

  {
   电子邮件:test@test.com
   密码:测试
}
 

,那么你可以通过设置请求对象 setEntity()

 最后弦乐体=的String.Format({\电子邮件\:\%s \的\密码\:\%s \的}, S1,S2);

HttpClient的客户端=新DefaultHttpClient();
HttpPost的PostMethod =新HttpPost(webServiceUrl);
postMethod.setEntity(新StringEntity(身体,UTF-8));
 

I am developing an android application... and I want to pass the data to asmx webservice via json object and I want the response of web service and access the data to the application.

Can anyone tell me how it is possible?

My Code Is:

    Thread myThread = new Thread()
{
    @Override
    public void run()
    {
        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
        request.addProperty("email",s1);
        request.addProperty("password",s2);
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.setOutputSoapObject(request);
        envelope.dotNet = true;
        try {
            HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
            androidHttpTransport.call(SOAP_ACTION, envelope);
            SoapObject result = (SoapObject)envelope.bodyIn;
            if(result != null){
                et_unm.setText(result.getProperty(0).toString());
            } else
                Toast.makeText(getApplicationContext(), "No Response",Toast.LENGTH_LONG).show();
        }catch (Exception e){
            Log.v("LOGIN::","Exception--->"+e.toString());
            e.printStackTrace();
        }
    }
};
myThread.start();

解决方案

Instead of using kSOAP library, you can do it with built-in apache classes like HttpClient, HttpGet, HttpPost, etc.

For example: You want to send below JSON object:

{
   "email":"test@test.com",
   "password":"test"
}

then you can set your request object by using setEntity():

final String body = String.format("{\"email\":\"%s\",\"password\":\"%s\"}", s1, s2);

HttpClient client = new DefaultHttpClient();
HttpPost postMethod = new HttpPost(webServiceUrl);
postMethod.setEntity(new StringEntity(body, "utf-8"));

这篇关于如何调用ASMX Web服务威盛在Android应用程序的JSON对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆