Я использую один и тот же тип запроса в своем приложении для более чем 10 различных типов подключения, все они работают, кроме этого, и я не могу понять, почему, единственная разница между ними - это отправляемые параметры. Если я вручную отправлю запрос (введя данные в адресную строку), все вернется в норму, но когда залп пытается подключиться, он говорит, что происходит NoConnectionError. Я пробовал это с моим подключением 4G и Wi-Fi, и он всегда возвращает то же самое.
ОБНОВИТЬ
Итак, я удалил параметры при отправке широты / долготы, и теперь сервер отправляет ответ. Я неправильно отправляю широту / долготу?
public void updateLoc(final double latitude, final double longitude, final Context context)
{
if (context != null)
{
RequestQueue queue = Volley.newRequestQueue(context);
StringRequest stringRequest = new StringRequest(Request.Method.POST, URL_FOR_ACCOUNT,
new Response.Listener<String>() {
@Override
public void onResponse(String response)
{
Log.e("Network", "Response " + response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if (error instanceof TimeoutError) {
Log.e(TAG,"Update Location Request timed out.");
}else if (error instanceof NoConnectionError){
Log.e(TAG,"Update Location no connection.");
} else if (error instanceof AuthFailureError) {
Log.e(TAG,"Auth failure");
} else if (error instanceof ServerError) {
Log.e(TAG,"Server Error");
} else if (error instanceof NetworkError) {
Log.e(TAG,"Network Error");
} else if (error instanceof ParseError) {
Log.e(TAG,"Parse Error");
}
}
}) {
//adding parameters to the request
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("command", "updateLoc");
params.put("appVersion", version);
params.put("androidVersionNumber", Integer.toString(Build.VERSION.SDK_INT));
params.put("email", userEmail);
params.put("lat", String.valueOf(latitude));
params.put("long", String.valueOf(longitude));
return params;
}
};




Хорошо, я понял, в чем была моя ошибка, вы не можете публиковать такие вещи, как long, string, boolean и т. д., Как это кажется, даже если они приводятся как имя String. Я изменил эту строку:
params.put("long", String.valueOf(longitude));
к этой строке:
params.put("lng", String.valueOf(longitude));
и все снова работает нормально. Я не смог найти никакой документации, в которой говорилось бы, что вы не можете использовать их в качестве имен String.