如何在要求后使用排球?

时间:2019-05-29 14:24:07

标签: android post android-volley

我是android studio的新手,我将使用排球库从服务器获取数据。

json请求如下:

d = []
for df in dframes:
    print('\n Dataframe')
    l = []
    x = []
    for interval in my_intervals:
        l.append(Thresholds(df,interval))
        x.append(interval[0])

    d.append(pd.concat(l,axis=1,keys=x))

pd.concat(d,keys=list(range(len(dframes))))

以下是我的代码

{
  "method": "authenticate",
  "params": [
    "dummyuser",
    "dummy"
  ],
  "id": "1",
  "jsonrpc": "2.0"
}

我遇到了“ com.android.volley.TimeoutError”错误。如何解决此错误?

然后是回应

RequestQueue requestQueueV1= Volley.newRequestQueue(getApplicationContext());
StringRequest stringRequestV1 = new StringRequest(Request.Method.POST, server_url + AppConfig.VERSION1_URL, new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
            // response is JSONObject
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        Toast.makeText(SettingsActivity.this, "Error occurred.", Toast.LENGTH_LONG).show();
    }
}) {
     @Override
     protected Map<String, String> getParams() {
         Map<String, String> request_body = new HashMap<String, String>();
         request_body.put("method", "authenticate");
         request_body.put("id", "1");
         request_body.put("jsonrpc", "2.0");
         JSONArray params = new JSONArray();
         params.put(user_name);
         params.put(password);
         request_body.put("params", params.toString());
         return request_body;
    }
    @Override
    public String getBodyContentType() {
         return "application/json; charset=utf-8";
    }

};
requestQueueV1.add(stringRequestV1);

获取成功后如何传递此响应json对象。

以下是我的邮递员屏幕截图:

postman screenshot1

postman screenshot2

1 个答案:

答案 0 :(得分:0)

将其添加到您的 stringRequestV1 下面,然后再将其添加到Requestqueue。

stringRequestV1.setRetryPolicy(new DefaultRetryPolicy(4000, 2, 2f));

其中4000是 TIMEOUT_MS ,2是 DEFAULT_MAX_RETRIES ,2f是 DEFAULT_BACKOFF_MULT

您可以使用如下所示的默认截击超时设置。

stringRequestV1.setRetryPolicy(new DefaultRetryPolicy(
5000, 
DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));