Как я могу настроить Retrofit разрешить передавать значение NULL в качестве параметров пути? - PullRequest
0 голосов
/ 04 марта 2020

Прочитайте это: https://futurestud.io/tutorials/retrofit-optional-path-parameters

См .:

Don’t Pass Null as Parameter Value
Retrofit doesn’t allow you to pass null as a value for path parameters and if you do, it throws an IllegalArgumentException. That means, your app will crash at runtime! Be aware of this behavior with requests that involve a path parameter. Ensure stability by verifying that the path parameter values are always not null.

Каков обходной путь для этого?

Нет необходимости поместите много кода здесь, потому что само Retrofit говорит, что это невозможно.

Примечание: не говорите мне, чтобы изменить это для серверной стороны, это просто невозможно. Я знаю, что могу использовать JSONObject с задачей asyn c для получения данных, но я хочу сделать это с Retrofit.

Ответы [ 2 ]

0 голосов
/ 04 марта 2020

попробуйте передать пустую строку, если она не работает, чем передать данные хэш-карты и добавить проверку проверки, просто добавьте те параметры, которые вам нужны

0 голосов
/ 04 марта 2020

Вы пытались передать пустую строку "" вместо null, когда значение пути равно NULL (простой оператор if был бы достаточен для правильного).

Это работает, когда я пытался. Я думаю, что это самый простой обходной путь, который я могу придумать, если вам не нужен ваш URL, чтобы удалить дополнительный / из URL. думать о том, чтобы создать другой интерфейс с простым URL-адресом (без пути) и при вызове API решить, какой интерфейс вызывать, основываясь на значении пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...