当我第一次向服务器发送数据时它工作正常,但下次它不调用 getParams() 方法
When i send data to server firts time it is work fine, but next time it is not call getParams() metod
我在我的项目中使用了 StringRequest。当我第一次向服务器发送数据时,它工作正常,但下次它不调用 getParams() 方法。我怎么解决这个问题
StringRequest 请求 = new StringRequest(Request.Method.POST, insertUrl, new Response.Listener() {
@Override
public void onResponse(String response) {
System.out.println(response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> parameters = new HashMap<String, String>();
parameters.put("product_id", "18");
parameters.put("count", Productcount.getText().toString());
parameters.put("type", cashstatus);
parameters.put("description", "Matn bo'ladi");
parameters.put("phone_number", "946287009");
parameters.put("on_map", address);
parameters.put("address", PersonAddresss.getText().toString());
try {
File toRead = new File(getDir("data", MODE_PRIVATE), "BCardParams");
FileInputStream fis = new FileInputStream(toRead);
ObjectInputStream ois = new ObjectInputStream(fis);
HashMap<String, String> mapInFile = (HashMap<String, String>) ois.readObject();
ois.close();
fis.close();
for (Map.Entry<String, String> m : mapInFile.entrySet()) {
Log.d("LOG____", m.getKey() + " : " + m.getValue());
parameters.put(m.getKey(), m.getValue());
}
} catch (Exception e) {
e.printStackTrace();
}
return parameters;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<String, String>();
headers.put("Authorization", "Bearer " + token);
return headers;
}
};
request.setRetryPolicy(new
DefaultRetryPolicy(5000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)
);
AppController.getInstance().addToRequestQueue(request);
请尝试更改此
request.setRetryPolicy(new
DefaultRetryPolicy(0,
0,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)
);
谢谢大家,多想帮帮我。我找到了我的问题的答案。出现错误是因为我在 activity 中创建了 RequestQueue,并且每次我想将数据发送到服务器时都会创建新的 RequestQueue 函数。我们必须创建一次 RequestQueue 并调用它,而不是每次都创建一个新的。
我在我的项目中使用了 StringRequest。当我第一次向服务器发送数据时,它工作正常,但下次它不调用 getParams() 方法。我怎么解决这个问题
StringRequest 请求 = new StringRequest(Request.Method.POST, insertUrl, new Response.Listener() {
@Override
public void onResponse(String response) {
System.out.println(response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> parameters = new HashMap<String, String>();
parameters.put("product_id", "18");
parameters.put("count", Productcount.getText().toString());
parameters.put("type", cashstatus);
parameters.put("description", "Matn bo'ladi");
parameters.put("phone_number", "946287009");
parameters.put("on_map", address);
parameters.put("address", PersonAddresss.getText().toString());
try {
File toRead = new File(getDir("data", MODE_PRIVATE), "BCardParams");
FileInputStream fis = new FileInputStream(toRead);
ObjectInputStream ois = new ObjectInputStream(fis);
HashMap<String, String> mapInFile = (HashMap<String, String>) ois.readObject();
ois.close();
fis.close();
for (Map.Entry<String, String> m : mapInFile.entrySet()) {
Log.d("LOG____", m.getKey() + " : " + m.getValue());
parameters.put(m.getKey(), m.getValue());
}
} catch (Exception e) {
e.printStackTrace();
}
return parameters;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<String, String>();
headers.put("Authorization", "Bearer " + token);
return headers;
}
};
request.setRetryPolicy(new
DefaultRetryPolicy(5000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)
);
AppController.getInstance().addToRequestQueue(request);
请尝试更改此
request.setRetryPolicy(new
DefaultRetryPolicy(0,
0,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)
);
谢谢大家,多想帮帮我。我找到了我的问题的答案。出现错误是因为我在 activity 中创建了 RequestQueue,并且每次我想将数据发送到服务器时都会创建新的 RequestQueue 函数。我们必须创建一次 RequestQueue 并调用它,而不是每次都创建一个新的。