Кодирование пути к файлу в качестве параметра запроса с Retrofit2 не работает

Я пытаюсь закодировать путь к файлу в параметре запроса, но у меня всегда один и тот же вывод. Я пробовал:@Query(value="path", encoded=false) String pathа также

@Query(value="path", encoded=true) String path

но запрос выглядит так в обоих случаях:

/myendpoint?path=C:\Development\some\random\filepath

Я ожидаю следующий вывод:

/myendpoint?path=file:%5C%5C%5CC:%5CDevelopment%5Csome%5Crandom%5Cfilepath

если это невозможно, было бы неплохо получить такой вывод:

/myendpoint?path=C:%5CDevelopment%5Csome%5Crandom%5Cfilepath

поэтому я могу добавить строку "file:\\" в путь к файлу, прежде чем передавать его в мой метод модернизации, но Url-кодирование должно быть выполнено путем модификации, а путь должен быть отправлен как параметр запроса! Кто-нибудь знает, как получить эту работу?

Изменить: Как я выяснил, Retrofit имеет следующее поведение для кодирования запросов:

  • если запрос содержит недопустимые символы (еще не закодированы), кодировка не работает
  • если запрос содержит допустимые (уже закодированные) символы, кодирование работает (закодированный параметр включает и выключает кодирование)

Спасибо

0 ответов

Другие вопросы по тегам