how to use soap based web service android

前端 未结 3 1484
梦如初夏
梦如初夏 2021-01-24 06:21

I want to use a SOAP-based web service in Android, but I don\'t know the concept of how to use SOAP-based web services. I previously have done XML parsing for simple XML web ser

3条回答
  •  北海茫月
    2021-01-24 06:26

    Try this, This code is for login-user using Ksoap

    public class Login extends Activity {
        /** Called when the activity is first created. */
    
        private static final String SOAP_ACTION = "http://tempuri.org/LoginUser";
        private static final String METHOD_NAME = "LoginUser";
        private static final String NAMESPACE = "http://tempuri.org/";
        private static final String URL = "http://"
        private static final String TAG = "HELLO"
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            Button signin = (Button) findViewById(R.id.regsubmitbtn);
            signin.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    new StartLoginAsyncTask(yourclass.this).execute();
                }
            });
        }
    
        private class LoginTask extends AsyncTask {
            private final ProgressDialog dialog =
                new ProgressDialog(YourClass.this);
    
            protected void onPreExecute() {
                this.dialog.setMessage("Logging in.........");
                this.dialog.show();
            }
    
            protected Boolean doInBackground(final Void unused) {
                return Main.this.login(); //don't interact with the ui!
            }
    
            protected void onPostExecute(final Boolean result) {
                if (this.dialog.isShowing()) {
                    this.dialog.dismiss();
                }
                if (result.booleanValue()) {
                    //also show register success dialog
                }
            }
        }
    
        private String doLogin() {
            EditText etxt_user = (EditText)findViewById(R.id.emaileditlog);
            String email_id = etxt_user.getText().toString();
            EditText etxt_password = (EditText)findViewById(R.id.pwdeditlog);
            String password = etxt_password.getText().toString();
            SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
            request.addProperty("email", email);
            request.addProperty("password", password);
    
            SoapSerializationEnvelope soapEnvelope =
                new SoapSerializationEnvelope(SoapEnvelope.VER11);
            soapEnvelope.dotNet = true;
            soapEnvelope.setOutputSoapObject(request);
            HttpTransportSE aht = new HttpTransportSE(URL);
    
            Pattern EMAIL_ADDRESS_PATTERN =
                Pattern.compile("[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
                                "\\@" +
                                "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
                                "(" +
                                "\\." +
                                "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" +
                                ")+");
            Matcher matcher = EMAIL_ADDRESS_PATTERN.matcher(email_id);
            if (matcher.matches()) {
                Log.v(TAG, "Your email id is valid ="+email_id);
                //  System.out.println("Your email id is valid ="+email);
            } else {
                //  System.out.println("enter valid email id");
                Log.v(TAG, "enter valid email id" );
            }
            if (password != null) {
                if (email_id.equalsIgnoreCase("") || password.equalsIgnoreCase("")) {
                    System.out.println("Fields should not be EMPTY");
                }
            }
            SoapObject request = new SoapObject(NAMESPACE_LOGIN, METHOD_NAME_LOGIN);
            request.addProperty("email", email_id);
            request.addProperty("pwd", password);
    
            SoapSerializationEnvelope soapEnvelope =
                new SoapSerializationEnvelope(SoapEnvelope.VER11);
            soapEnvelope.dotNet = true;
            soapEnvelope.setOutputSoapObject(request);
            HttpTransportSE aht = new HttpTransportSE(URL_LOGIN);
    
            try {
                aht.setXmlVersionTag(""); 
                aht.call(SOAP_ACTION_LOGIN, soapEnvelope);
    
                SoapObject resultsRequestSOAP = (SoapObject) soapEnvelope.bodyIn;
                Log.v("TAG", String.valueOf(resultsRequestSOAP));
    
                Object response=(Object)soapEnvelope.getResponse();
                temp=response.toString();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return temp;
        }
    }
    

提交回复
热议问题