Я отправляю Volley StringRequest, и получение ответа занимает более трех минут (но ответ имеет статус OK и метод действия получения работает правильно).
Есть ли способ проверить, действительно ли запрос был отправлен на сервер (все ответы, которые я нашел о запросах на залп, говорят о том, когда был получен ответ), так что я могу сказать, что это только мой телефонный звонок 2 минуты для обработки запроса перед его передачей или, если requestQueue просто занимает много времени, прежде чем он даже попадет в мой запрос (хотя я отправляю только один запрос Volley, по щелчку, с приоритетом IMMEDIATE).
Журналы на стороне сервера показывают предыдущий запрос (отправка формы веб-просмотра), прибывающий за полные 2-3 минуты до запроса StringRequest, но я не уверен, что задержка на стороне cloudflare, ELB или где-то еще, и я хочу чтобы узнать, могу ли я отменить исходное устройство как виноватое.
Код следует для справки:
public void sendPostRequest(Map<String,String> params, String option)
{
RequestQueue MyRequestQueue = Volley.newRequestQueue(this);
String url="";
switch (option){
//...
case "dniImages": //This is the one
url = BuildConfig.REST_DNI_IMAGES_ENDPOINT ;
break;
}
StringRequest MyStringRequest = new StringRequest(Request.Method.POST, url, new com.android.volley.Response.Listener<String>() {
@Override
public void onResponse(String response) {
try{
JSONObject resp = new JSONObject(response);}
catch(JSONException e){}
}
}
, new com.android.volley.Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
switch (option){
//...
case "dniImages":
Toast.makeText(getApplicationContext(),"Error",Toast.LENGTH_SHORT).show();
break;
}
}
}) {
@Override
public Priority getPriority() {
return Priority.IMMEDIATE;
}
@Override
protected com.android.volley.Response<String> parseNetworkResponse(NetworkResponse response) {
if (response.statusCode == 200) {
if (option.equals("dniImages"))
Toast.makeText(getApplicationContext(), "Error uploading images", Toast.LENGTH_SHORT).show();
}
return super.parseNetworkResponse(response);
}
protected Map<String, String> getParams() {
return params;
}
@Override
public Map<String, String> getHeaders(){
try {
Map<String, String> headers = super.getHeaders();
if (headers == null
|| headers.isEmpty()) {
headers = new HashMap<String, String>();
}
this.addSessionCookie(headers);
return headers;
}
catch (AuthFailureError e)
{
}
return new HashMap<String, String>();
}
/**
* Adds session cookie to headers if exists.
* @param headers
*/
public final void addSessionCookie(Map<String, String> headers) {
String cookies = CookieManager.getInstance().getCookie(BuildConfig.TIENDAMIA_URL);
headers.put("cookie", cookies);
}
};
MyRequestQueue.add(MyStringRequest);
}