Eu tenho os seguintes códigos, de um app no Android Studio, que consome um Web Service que já vem pré-pronto no Netbeans, ele deveria enviar dois valores digitados pelo usuário, somar e retornar o resultado. Aparentemente não aponta nenhum erro no código, mas quando faço a soma no app ele processa e não retorna nenhum resultado.
Código da classe do Web Service:
public CalculatorWS () {
}
public int add(int i, int j) throws IOException, XmlPullParserException {
SoapObject soap = new SoapObject("http://calculator.me.org/", "add"); soap.addProperty("i", i); soap.addProperty("j", j);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.setOutputSoapObject(soap);
HttpTransportSE httpTrans = new HttpTransportSE("http://192.168.0.100:8080/CalculatorApp/CalculatorWSService");
httpTrans.call("add", envelope);
Object resultado = envelope.getResponse();
return Integer.parseInt(resultado.toString());
}
Código da classe MainActivity:
public class MainActivity extends AppCompatActivity implements Runnable {
private EditText edtValor1; private EditText edtValor2; private Button botaoCalcular; private TextView txtResultado; private Handler handler = new Handler(); private ProgressDialog dialog;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
edtValor1 = (EditText) findViewById(R.id.edtValor1); edtValor2 = (EditText) findViewById(R.id.edtValor2); botaoCalcular = (Button) findViewById(R.id.btnCalcular); txtResultado = (TextView) findViewById(R.id.txtResultado);
botaoCalcular.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) {
dialog = new ProgressDialog(MainActivity.this); dialog.setMessage("Processando..."); dialog.setTitle("Web Service"); dialog.show();
Thread t = new Thread(MainActivity.this); t.start();
} });
}
@Override public void run() {
int valor1 = Integer.parseInt(edtValor1.getText().toString()); int valor2 = Integer.parseInt(edtValor2.getText().toString());
try {
CalculatorWS ws = new CalculatorWS();
final int resultado = ws.add(valor1, valor2);
handler.post(new Runnable() { @Override public void run() {
txtResultado.setText("Resultado: " + resultado);
} });
} catch (IOException e) { e.printStackTrace();
Log.e("MainActivity", "Erro", e);
} catch (XmlPullParserException e) { e.printStackTrace(); }
finally { dialog.dismiss(); }
}}
Alguém pode me dar alguma dica do porque isso acontece?