
我想在Android中使用基于SOAP的Web服务,但是我不知道如何使用基于SOAP的Web服务的概念.以前,我已经为简单的XML Web服务完成了XML解析,但是对基于SOAP的服务一无所知.您能告诉我如何在AndroID中使用基于SOAP的Web服务吗?
解决方法:
试试看,此代码适用于使用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<VoID, VoID, Boolean> { 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("<?xml version=\"1.0\" enCoding=\"UTF-8\"?>"); 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; }} 总结 以上是内存溢出为你收集整理的如何使用基于SOAP的Web服务Android全部内容,希望文章能够帮你解决如何使用基于SOAP的Web服务Android所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)