Android アプリから asmx Web サービスを呼び出そうとしています。今日、文字通り Android 開発を開始しました。ネットやここで見つけたさまざまな解決策に従っていますが、予想よりも難しいようです。私はさまざまなソリューションを試しましたが、KSoap2 を使用するのがこれを実装する最も簡単な方法のようです。
ある時点まで機能する次のコードがあります。
private class CallWebService extends AsyncTask<Void, Void, Void> {
private static final String SOAP_ACTION = "http://tempuri.org/GetUser";
private static final String METHOD_NAME = "GetUser";
private static final String NAMESPACE = "http://tempuri.org/";
private static final String URL = "http://160.10.1.79:59315/Service1.asmx";
TextView tv;
@Override
protected Void doInBackground(Void... params) {
tv=(TextView)findViewById(R.id.txtMessage);
try {
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet=true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.call(SOAP_ACTION, envelope);
Object result = (Object)envelope.getResponse();
tv.setText(result.toString());
}
catch (Exception e) {
tv.setText(e.getMessage());
}
return null;
}
}
線にぶら下がっているようandroidHttpTransport.call(SOAP_ACTION, envelope);
です 理由はありますか?これは正しいアプローチですか?別の方向を見るべきですか?