как получить значение ответа от веб-службы - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть простой экран входа в систему на Android. Я отправляю имя пользователя и пароль в веб-сервис .NET, и он возвращает значение true или false. Я хочу сделать, если он вернет истину, тогда я начну другое намерение. Если он возвращается как ложный, то я хочу показать сообщение об ошибке.

Вот мой AsyncTask

private class AsyncCallWS extends AsyncTask<String , Void , Void>{
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        error.setText("Giriş Yapılıyor....");
    }
    @Override
    protected Void doInBackground(String... objects) {
        getLoginCredentials(username , password);
        return null;
    }
    @Override
    protected void onPostExecute(Void o) {
        super.onPostExecute(o);
    }

    @Override
    protected void onProgressUpdate(Void... values) {
        super.onProgressUpdate(values);
    }
}

Вот мой метод getLoginCredentials

 private void getLoginCredentials(String uName , String passw){
        SoapObject request = new SoapObject(NAMESPACE , METHOD_NAME);

        PropertyInfo usernamePI = new PropertyInfo();
        usernamePI.setName("kAdi");           
        usernamePI.setValue(username);        
        usernamePI.setType(String.class); 
        request.addProperty(usernamePI);

        PropertyInfo passwordPI = new PropertyInfo();
        passwordPI.setName("sifre");         
        passwordPI.setValue(password);      
        passwordPI.setType(String.class);    
        request.addProperty(passwordPI);


        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet = true;
        envelope.setOutputSoapObject(request);

        HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
        try {
            androidHttpTransport.call(SOAP_ACTION , envelope);
            SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
            loginStatus = new Boolean(response.toString());

        } catch (IOException e) {
            e.printStackTrace();
        } catch (XmlPullParserException e) {
            e.printStackTrace();
        }


    }

А вот мои основные коды

public class MainActivity extends AppCompatActivity {
    final String NAMESPACE = "http://tempuri.org/";
    final String URL = "http://192.168.1.50:60599/AndroidWebService.asmx";
    final String SOAP_ACTION = "http://tempuri.org/AndroidDeneme";
    final String METHOD_NAME = "AndroidDeneme";
    Button btnLogin;
    EditText kAdi , sifre;
    TextView error;

    String username;
    String password;
    String DonenDeger;
    boolean loginStatus;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnLogin = (Button) findViewById(R.id.btnGirisYap);
        kAdi = (EditText) findViewById(R.id.etKullaniciAdi);
        sifre = (EditText) findViewById(R.id.etSifre);
        error = (TextView) findViewById(R.id.txtError);

        btnLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if ((kAdi.getText().length() != 0 && kAdi.getText().toString() != null) && (sifre.getText().length() != 0 && sifre.getText().toString() != null)){
                    username = kAdi.getText().toString();
                    password = sifre.getText().toString();
                    new AsyncCallWS().execute();
                    Intent intent = new Intent(MainActivity.this , activity_home.class);

                    /*/if (loginStatus){

                    }
                    else{

                    }*/
                }
                else{
                    error.setText("Boş alan bırakmayınız.");
                }
            }
        });
    }
...