【发布时间】:2015-06-04 18:25:13
【问题描述】:
我正在使用 Volley 来访问 REST API。我的大多数调用都返回 200,如果它返回 400、401 或 409,我会返回一个 json 响应,其中包含不同的错误消息,说明出了什么问题。我一直在查看 parseNetworkRequest,但我并没有真正理解它。
这是我的 JsonArrayRequest。它只应该返回一个状态码。没有消息,大概会改成在400或者401上加一条json消息
JsonArrayRequest postVerification = new JsonArrayRequest(url,amountArray,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
realm = Realm.getInstance(getApplicationContext());
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.where(AccountsModel.class).beginsWith("actId", accountId).findFirst().setActverified("true");
}
});
dismissDialog();
updateView(); }
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.i("error", "Error: " + error.getMessage());
dismissDialog();
Toast message = Toast.makeText(getApplicationContext(),"Unable to verify account at this time", Toast.LENGTH_SHORT);
message.show();
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
Log.i("Auth", "Bearer " + NetworkEngine.access_token);
headers.put("Authorization", auth);
return headers;
}
@Override
public int getMethod() {
return Method.POST;
}
@Override
protected Response<T> parseNetworkResponse(
NetworkResponse response) {
try {
String json = new String(response.data,
HttpHeaderParser.parseCharset(response.headers));
return Response.success(json,),
HttpHeaderParser.parseCacheHeaders(response));
} catch(Exception e){}
}
};
我在 parseNetworkResponse 行有一个错误
error: cannot find symbol
protected Response<T> parseNetworkResponse(
当我将鼠标悬停在响应上时,它说它正在尝试使用不兼容的返回类型。我真的不知道从这里做什么。不确定在 Response.sucess() 中放置什么或如何实际获取状态码。任何帮助将不胜感激。
【问题讨论】:
-
这篇文章应该会有所帮助:stackoverflow.com/questions/21867929/…
-
抱歉,Volley 一直在努力让一切正常运行当我提出请求时,我通过 GsonRequest variableName = new GsonRequest(url, class,headers, new Response.Listener
, new Response.ErrorListener){} Response.Listener 有一个错误方法“从监听器派生的匿名类”必须在“监听器”中声明为抽象或实现抽象“onResponse ”另外,我将如何覆盖它并添加一个消息正文使其成为发布请求?我很确定我让它接受我传递给它的任何方法,有点我不知道如何将正文部分添加到它。