首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >web服务响应失败Soap 2

web服务响应失败Soap 2
EN

Stack Overflow用户
提问于 2012-07-15 02:47:54
回答 1查看 294关注 0票数 0
代码语言:javascript
复制
package bt.Mobile.abc;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;

public class HelloAndroidActivity extends Activity {
    private static final String APP_TAG = "BT Android";

    // TO VALIDATE THE LOGIN
    private static final String SOAP_ACTION = "http://SmartApp.boothtracker.com/ValidateLogin";
    private static final String METHOD_NAME = "ValidateLogin";
    private static final String NAMESPACE = "*****.com/";
    private static final String URL = "*****.asmx";

    TextView tvUserName;
    TextView tvPassword;
    TextView tvStatus;
    ProgressBar progressBar1;

    /** SelectedBooth used to store the Selected Booths **/
    public String SelectedBooth;

    public String getSelectedBooth() {
        return SelectedBooth;
    }

    public void setSelectedBooth(String SelectedBooth) {
        this.SelectedBooth = SelectedBooth;
    }

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {           
        super.onCreate(savedInstanceState);

        new eula.OnEulaAgreedTo() {

            public void onEulaAgreedTo() {
                // TODO Auto-generated method stub

            }
        };

        // VALIDATE USER LOGIN
        try
        {
            setContentView(R.layout.main);

            // INITIALIZE CONTROLS USED IN FORM
            tvUserName=(TextView)findViewById(R.id.editText1);
            tvPassword=(TextView)findViewById(R.id.editText2);
            tvStatus=(TextView)findViewById(R.id.txtStatus);

            progressBar1 = (ProgressBar)findViewById(R.id.progressBar1);
            progressBar1.setVisibility(View.GONE);

            Button b = (Button)findViewById(R.id.btnSignIn);            
            b.setOnClickListener(new View.OnClickListener(){
                public void onClick(View arg0){ 

                    progressBar1.setVisibility(View.VISIBLE);
                    tvStatus.setText("Processing...");

                    try {
                        // INVOKE THE WS TO GET THE LOGIN VALIDATED 
                        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);                       
                        request.addProperty("UserName", tvUserName.getText().toString());`enter code here`
                        request.addProperty("Password", tvPassword.getText().toString());                   
                        Toast.makeText(getApplicationContext(), ("Connecting"), Toast.LENGTH_LONG).show();
                        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);                     
                        envelope.dotNet=true;
                        envelope.setOutputSoapObject(request);
                        Toast.makeText(getApplicationContext(), (URL), Toast.LENGTH_LONG).show();
                        HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
                        androidHttpTransport.call(SOAP_ACTION, envelope);                   
                        Toast.makeText(getApplicationContext(), ("Sending"), Toast.LENGTH_LONG).show();
                        Object result = (Object)envelope.getResponse();

                        String strResult = result.toString();

                        progressBar1.setVisibility(View.GONE);

                        if  (strResult.equals("True"))
                        {
                            //LOGIN WAS SUCESSFULL - PROCED TO NEXT PAGE
                            tvStatus.setText("Login Successfull, Please Wait...");
                            tvPassword.setText("");
                            Intent i = new Intent(HelloAndroidActivity.this, newfile.class);
                            startActivity(i);
                            finish();
                        }
                        else
                        {
                            // LOGIN FAILED TO AUTHENTICATE
                            Toast.makeText(getApplicationContext(), ("Invalid Username and Password"), Toast.LENGTH_LONG).show();
                            tvStatus.setText("Invalid username & password");
                            tvPassword.setText("");
                        }

                    } catch (Exception e) {
                        // LOGIN FAILED; NOTIFY THE USER AND WAIT
                        Toast.makeText(getApplicationContext(), (e.getMessage()), Toast.LENGTH_LONG).show();
                        tvStatus.setText("Connection Failure");
                        tvStatus.setText(e.getMessage());
                        tvPassword.setText("");
                    }
                }
            });
        }
        catch (Exception e)
        {
            Log.e(APP_TAG, Log.getStackTraceString(e));
        }
    }
}

我是Android新手,我创建了一个小应用程序并调用了一个web方法。它总是工作得很好,但是突然停止了工作,它没有连接到WS。我正在使用KSOAP2。我可以通过浏览器访问WS。我没有对代码做任何更改,它在交付时工作得很好,它停止工作了。

Version- GingerBread,使用Eclipse,WS是asmx。我正在使用2.6.5 jar..please的KOSAP2,请帮助我,它非常关键

EN

回答 1

Stack Overflow用户

发布于 2012-07-15 03:28:31

而不是

代码语言:javascript
复制
 Object result = (Object)envelope.getResponse();

尝试使用

代码语言:javascript
复制
 SoapPrimitive result = (SoapPrimitive) envelope.getResponse();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11486432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档