【发布时间】:2017-05-27 07:38:31
【问题描述】:
我正在列表视图中填充医生列表,并且它工作正常。现在我想要的是,如果在 30 秒内没有从服务器获得响应,我想打开警报。我如何在下面的代码中使用 volley 来做到这一点。我已经检查了互联网连接,但我也想检查响应。我怎样才能做到这一点?
public void getDoctorlist(final String email, final String sessionid) {
String tag_string_req = "req_service";
pDialog.setMessage("Getting Details");
showDialog();
StringRequest strReq = new StringRequest(Method.POST, AppConfig.URL_Doc_list, new Response.Listener<String>() {
@Override
public void onResponse(String inventoryList) {
Log.d("++++++", inventoryList.toString());
hideDialog();
try {
JSONObject jObj = new JSONObject(inventoryList);
String Errorcode = jObj.getString("responseCode");
if (Errorcode.equalsIgnoreCase("101")) {
Toast.makeText(getApplicationContext(), "Please Try again later", Toast.LENGTH_SHORT).show();
}
if (Errorcode.equalsIgnoreCase("102")) {
JSONArray json_user = jObj.getJSONArray("dataList");
for (int i = 0; i < json_user.length(); i++) {
try {
JSONObject obj = json_user.getJSONObject(i);
GetSetPaln doctor = new GetSetPaln(obj.getString("companyName"), obj.getString("clientId"),
obj.getString("clientIdentifier"), obj.getString("lastVisit"),
obj.getString("imageUrl"), obj.getString("emailId"), obj.getString("contactNo"),
obj.getString("address"), obj.getString("clientLocationId"),
obj.getString("city"));
doc_list.add(doctor);
} catch (JSONException e) {
e.printStackTrace();
}
}
ad_doctor = new DoctorAdapter(DoctorList.this, doc_list);
listview.setAdapter(ad_doctor);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
hideDialog();
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("emailId", email);
params.put("sessionId", sessionid);
return params;
}
};
AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
}
【问题讨论】:
-
处理
onErrorResponse中的错误。
标签: android web-services android-volley