Мое приложение уже работает некоторое время, и все работает очень хорошо! Сервер, обновленный недавно с http на https, с тех пор, как это изменение, я получаю ошибку 400 BAD INPUT на каждом вызове сервера. Изучив этот вопрос в течение нескольких болезненных часов, я узнал, что если я отправлю запрос с пустыми заголовками, просьба PASS! Без ошибок. Но мне нужны эти заголовки!
Также, как в iOS, так и в моих проверках в POSTMAN заголовки идут хорошо, поэтому проблема должна быть в клиенте, я думаю ..
Я отправляю свои заголовки. Переопределение метода getHeaders.
У кого была эта проблема раньше? Любая идея, как это исправить?
Есть мой код для заголовков:
@Override public Map<String, String> getHeaders() throws AuthFailureError { HashMap<String, String> headers = new HashMap<String, String>(); headers.put("Content-Type", "application/json; charset=utf8"); headers.put("AppVersion", BaseApplication.getCurrentDevice().getAppVersion()); headers.put("DeviceType", BaseApplication.getCurrentDevice().getDeviceType().toString()); return headers; }
большое спасибо!
Хорошо, так для всех, у кого есть эта проблема, вот объяснение.
Я дополнительно исследовал свою проблему и выяснил, что моя проблема в конце концов не была заголовком!
Я попытался сузить его и выяснил, что он дает мне 400 ошибок при запросах POST с помощью Body. Видимо, после перехода на HTTPS залп посылает пустые тела. И я не понимал, почему.
В конце я нашел свою проблему. В заголовках мне нужно было добавить «charset = utf-8» и да, в приведенном выше коде у меня есть charset, но я написал «utf8», и, по-видимому, в HTTPS ему нужно «utf-8» !! Эта маленькая «-» сделала всю разницу!
Опять же мое приложение работает без этого «-» уже 3 месяца и никаких проблем, по какой-то причине после перехода на HTTPS utf8 необходимо изменить на «utf-8»!
Надеюсь, что это поможет кому-то.
Вы можете найти более подробную информацию по этой проблеме в этой ссылке:
http://envyandroid.com/android-volley-empty-parameters/
JozeRi