Ich versuche, das JSON-Objekt auf folgende Weise zurückzubekommen:
JSONObject jsonObject = http.makeRequest("GET", "https://api.twitter.com/1.1/search/tweets.json", null);
Die allgemeine Methode zum Verarbeiten aller HTTP-Anfragen ist wie folgt
public void makeRequest(String method, String url, Array params) {
// Request a string response from the provided URL.
JsonObjectRequest jsonObjReq = new JsonObjectRequest(getRequestMethod(method),
url,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
processResponse(Constants.Global.SUCCESS, null, response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
try {
mStatusCode = error.networkResponse.statusCode;
VolleyLog.d(Constants.Global.ERROR, "Error: " + error.getMessage());
Logger.e(error.getMessage());
} catch (Exception e) {
Logger.e(e.getMessage());
mStatusCode = 0;
}
Logger.e(mStatusCode.toString());
processResponse(Constants.Global.ERROR, mStatusCode, null);
}
});
// Add tag to request for bulk cancelling
//jsonObjReq.setTag()
queue.add(jsonObjReq);
}
Und die Methode zum Verarbeiten des JSON-Ergebnisses ist folgende:
private JSONObject processResponse(String resultState, Integer httpStatusCode, JSONObject responseData) {
try {
// First check that result state is error or the success
if (resultState.equals(Constants.Global.SUCCESS)) {
Logger.i("Response is success");
Logger.i(responseData.toString());
//TODO: ADD SUCCESS OBJECT CREATION
}
if (resultState.equals(Constants.Global.ERROR)) {
Logger.e("Response is error");
//TODO: ADD ERROR HANDLING AND ERROR OBJECT CREATION
}
} catch(Exception e) {
e.printStackTrace();
Logger.e(e.getMessage());
}
return responseData;
}
Ich möchte fragen, wie ich JSONObject (erstes Code-Snippet) asynchron zurückbekommen kann.
Alle Anfragen werden mit der Volley-Bibliothek verarbeitet.
Vielen Dank für jeden Rat.
Sehen Sie, ob Ihre Anforderungen dieser Frage entsprechen oder nicht
– BNK
3. September ’15 um 13:44
Danke Yopu, aber ich denke nicht, ich würde gerne wissen, wie man mit einigen Codebeispielen umgeht, die meinen Anforderungen entsprechen.
– redrom
3. September ’15 um 14:40
Eigentlich kann ich immer noch nicht verstehen, was Ihre Asynchronität hier bedeutet? Gemäß Google-Dokumentation, es ist bereits asynchron (…
with data fetched asynchronously from the network.
)– BNK
3. September ’15 um 14:46
Ich denke, dass Async von Volley automatisch bereitgestellt wird. Ich muss also wissen, wie man JSON-Daten in das erste Snippet einfügt.
– redrom
3. September ’15 um 15:00
Danke, es sieht nach einer guten Lösung aus, aber ich verstehe nicht, was genau bedeutet, die MySingleton-Klasse zu verwenden. Dazu brauche ich ein Beispiel.
– redrom
7. September ’15 um 8:25