如何在Android中获取Web服务布尔值?

时间:2016-10-13 08:51:49

标签: java android web-services

我的webservice有两个参数。这些unamePI和passPI.I'm发送web服务用户名和密码。我得到了真正的价值,但我无法使用此值进行验证。如何让Web服务返回booelan值?

  btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               uname=e_name.getText().toString();
               password=e_pass.getText().toString();

                new CallWebService().execute();
               Intent intent=new Intent(MainActivity.this,HomeActivity.class);
                if(deger=="true"){
                    startActivity(intent);
                }else{
                    Toast.makeText(getApplicationContext(),"Error",Toast.LENGTH_LONG).show();

                }
            }
        });

我的AsyncTask:

public class CallWebService extends AsyncTask<String, Void, Void> {

            @Override
            protected Void doInBackground(String... params) {
                   getLogin(uname,password);
                return null;
                       }

            @Override
            protected void onPostExecute(Void result) {

            }
           @Override
           protected void onPreExecute() {

           } }

getlogin功能:

 public void getLogin(String uname, String password){
            SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
            PropertyInfo namePI = new PropertyInfo();
            namePI.setName("unamePI");
            namePI.setValue(uname);
            namePI.setType(boolean.class);
            request.addProperty(namePI);

            PropertyInfo pasPI = new PropertyInfo();
            pasPI.setName("passPI");
            pasPI.setValue(password);
            pasPI.setType(boolean.class);
            request.addProperty(pasPI);
            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                    SoapEnvelope.VER11);
            envelope.dotNet = true;
            //Set output SOAP object
            envelope.setOutputSoapObject(request);
            //Create HTTP call object
            HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

            try {
                //Invole web service
                androidHttpTransport.call(SOAP_ACTION, envelope);
                //Get the response
                SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
                //Assign it to deger static variable
                deger = response.toString();

        } catch (Exception e) {
            e.printStackTrace();
        }

返回值的Web服务:

<boolean xmlns="http://tempuri.org/">true</boolean>

2 个答案:

答案 0 :(得分:0)

deger = new Boolean(response.toString());

答案 1 :(得分:0)

如下所示更改Boolean比较。

deger = new Boolean(response.toString());

if(deger)
{
   startActivity(intent);
}
else
{
   Toast.makeText(getApplicationContext(),"Error",Toast.LENGTH_LONG).show();
}