android javaのwebserviceを呼び出す必要があり、別のクラスが呼び出す必要があります。私は最後に、UIでwsの応答を示しています。Android JavaでRestfull WebServiceを非同期で呼び出す
私はwebserviceをやりました。 「非同期」の部分だけが正しく動作していません。
これは、3つの文字列の受信、私のWebサービスです。
WebServiceRestFull web = new WebServiceRestFull(this);
web.wsURL = "http://someurl.com/rest/etc";
web.wsFunction = "login";
web.wsInput = "mike";
web.execute();
Thread.sleep(1000);
: "Androidのアクティビティ" 次のように私は、この非同期クラスを呼び出すには、他の側では
public class WebServiceRestFull extends AsyncTask<String, String, String>
{
protected ProgressDialog dialog;
public String wsURL;
public String wsFunction;
public String wsInput;
public int codeHTTP;
public String messageHTTP;
public String strResponse;
public WebServiceRestFull(Context act)
{
dialog = new ProgressDialog(act);
}
@Override
protected void onPreExecute() {
dialog.setMessage("Wait please...");
dialog.show();
}
@Override
protected void onPostExecute(String result)
{
if (dialog.isShowing())
{
dialog.dismiss();
}
}
@Override
protected String doInBackground(String... params)
{
String url = wsURL + wsFunction;
String inputCoded = EncodeString(wsInput);
HttpURLConnection request;
URL urlToRequest = new URL(url);
request = (HttpURLConnection) urlToRequest.openConnection();
request.setDoOutput(true);
request.setDoInput(true);
request.setRequestProperty("Content-Type", "application/json");
request.setRequestMethod("POST");
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(request.getOutputStream());
outputStreamWriter.write("\""+inputCoded+"\"");
outputStreamWriter.flush();
outputStreamWriter.close();
codeHTTP = request.getResponseCode();
messageHTTP = request.getResponseMessage();
InputStream is = request.getInputStream();
String resp = convertStreamToString(is);
strResponse = DecodeString(resp);
request.disconnect();
return strResponse;
}
catch (Exception ex)
{
ex.printStackTrace();
return "ERROR";
}
}
}
を
問題は、これが実際に非同期呼び出しを行わず、結果が通常Webサービスによって受信されないということです。
これを行う簡単な方法はありますか、私はwebserviceまたは独自のwebserviceクラスの呼び出しとしていくつかの面で間違っていますか?
私の英語のために残念です。
ありがとうございます!
なぜThread.sleep(1000)を使用しますか?代わりに、結果の後に結果を得るためにコールバックメソッドを使用します。 – Muthu