loopJ AsyncHttpClient onFinish 또는 onSuccess 또는 onFailure에서받는 응답을 반환 할 방법을 찾고 있습니다. 내가 코드를 호출 할 때Android - loopJ AsyncHttpClient return onFinish 또는 onSuccess
**jsonParse.java file**
public class jsonParse {
static JSONObject jObj = null;
static String jsonString = "";
AsyncHttpClient client;
public JSONObject getJSONObj() {
RequestParams params;
params = new RequestParams();
params.add("username", "user");
params.add("password", "password");
client = new AsyncHttpClient();
client.post("http://example.com", params, new TextHttpResponseHandler() {
@Override
public void onSuccess(int i, Header[] headers, String response) {
jsonString = response;
Log.d("onSuccess: ", jsonString);
}
@Override
public void onFailure(int statusCode, Header[] headers, String response, Throwable e) {
if (statusCode == 401) {
jsonString = response;
Log.d("onFailure: ", jsonString);
}
}
});
try {
jObj = new JSONObject(jsonString);
} catch (JSONException e) {
Log.e("Exception", "JSONException " + e.toString());
}
return jObj;
}
}
가 :
JSONParser jsonParser = new JSONParser();
jsonParser.getJSONFromUrl();
을 내가는 onSuccess 전에 JSONException을 얻거나 onFailure 방법은 HTTP 게시를 완료 지금부터 나는이 코드 조각이있다.
나는 첫 번째 호출에서이를 알았다 : Log.e ("Exception", "JSONException"+ e.toString()); 로그되고 Log.d ("onSuccess :", jsonString); 동기화 상태에있는 값을 기록합니다.
두 번째 호출시 : jObj = new JSONObject (jsonString); 성공적으로 실행되면 그 메서드에 대해 원하는 반환 값을 얻습니다. 그 시점에 onSuccess 메서드는 이미 변수 jsonString에 값을 할당했기 때문입니다.
내가 정확히 찾고있는 것은 예방하는 방법입니다. 조숙 한 메소드에서 jObj를 반환합니다.
어쨌든 메소드 getJSONObj를 작성하고 AsyncHttpClient 태스크 완료를 기다리고 변수를 jsonString에 할당하고 JSONObject를 작성하여 리턴하십시오.
미리 감사드립니다. 건배!
개조 사용 ... – mapodev
@ mapo87 초기 답장을 보내 주셔서 감사합니다. 내가 개장에 관한 질문이 있는데 https 게시물과 영구 쿠키 저장소를 지원합니까? – Ganesh
https : 예, 쿠키 : 설정해야합니다. 예 : – mapodev