を使用してandroid-async-http 1.4.5
いますが、サーバーを呼び出すことはありません。コードは次のとおりです。
public class HttpUtils {
private static AsyncHttpClient client = new AsyncHttpClient();
public static void get(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
params.setUseJsonStreamer(true);
client.get(url, params, responseHandler);
}
public static void post(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
params.setUseJsonStreamer(true);
Log.i("URL", url);
client.post(url, params, responseHandler);
}
}
ハンドラーを定義する方法は次のとおりです。
public abstract class JsonResponseHandler extends AsyncHttpResponseHandler {
private static final String TAG = "JSON_RESPONSE_HANDLER";
public abstract void onSuccess(int statusCode, Header[] headers, JSONObject jsonObject);
public abstract void onFailure(int statusCode, Header[] headers, JSONObject jsonObject);
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
Log.i(TAG, "on success");
onSuccess(statusCode, headers, parseObject(responseBody));
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
Log.i(TAG, "on failure");
onFailure(statusCode, headers, parseObject(responseBody));
}
private JSONObject parseObject(byte[] response) {
JSONObject jsonObj = null;
try {
String json = new String(response, "UTF-8");
jsonObj = new JSONObject(json);
} catch (Exception e) {
e.printStackTrace();
}
return jsonObj;
}
}
いくつかのデバッグ作業の後、コードが実際に実行されることがわかりましclient.post(...)
たが、サーバーはそれからの呼び出しを受け取りませんでした。
編集
テストケースでの使用方法は次のとおりです。
public class VerifyCodeTest extends TestCase {
private static final String TAG ="VERIFY_CODE_TEST";
public void testGetVerifyCode(){
Log.i(TAG, "Hello World");
VerifyCodeTransaction vc= new VerifyCodeTransaction("167xxxx137");
vc.execute(new JsonResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, JSONObject jsonObject) {
Log.i(TAG, "SUCCESS");
Log.i(TAG, jsonObject.toString());
}
@Override
public void onFailure(int statusCode, Header[] headers, JSONObject jsonObject) {
Log.i(TAG, "FAILURE");
Log.i(TAG, jsonObject.toString());
}
});
}
}