SOAP メソッドを使用してリクエストを送信しています。次に、doInBackground の String 変数に Response を格納し、onPostExecute の状態をチェックしています。しかし、順を追って確認したところ、onPostExecuteの値をクリアしていることがわかりました。この問題を解決するには?
protected Void doInBackground(Void... args) {
request = new SoapObject(NAMESPACE, METHOD_NAME);
username = new PropertyInfo();
username.setName("UserName");
username.setValue(Username);
username.setType(String.class);
request.addProperty(username);
password = new PropertyInfo();
password.setName("Password");
password.setValue(Password);
password.setType(String.class);
request.addProperty(password);
SoapSerializationEnvelope envp = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envp.dotNet = true;
envp.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {
androidHttpTransport.call(SOAP_ACTION, envp);
SoapPrimitive response = (SoapPrimitive) envp.getResponse();
Response = response.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
if (dialog != null) {
dialog.dismiss();
dialog = null;
}
if (Response.equals("Fail")) {
etPassword.setText("");
textValidation.setText("UserName Or Password is Wrong.");
} else {
etUsername.setText("");
etPassword.setText("");
}
}