Почему% 20 становится% 2520, когда я использую перенаправленный URL? - PullRequest
2 голосов
/ 11 февраля 2020

Это работает, как и ожидалось - возвращает одну запись:

https://terraref.ncsa.illinois.edu/bety/api/v1/search.json?sitename=~Season%204&limit=1

это не

, когда я использую базовый URL-адрес terraref.org, а не terraref.ncsa.illinois.edu:

https://terraref.org/bety/api/v1/search.json?sitename=~Season%204&limit=1

, потому что во втором случае % заменяется на %25, и тогда термин запроса не найден.

Вопросы

  • Как это исправить?
  • Почему это появилось в последние несколько месяцев и

Обновление

вы можете увидеть историю вопросов для красной сельди, связанной с пакетами R, которые я использовал, благодаря комментариям, я сузил проблему, я думаю

Я включил теги ruby -on-rails и nginx, потому что это инструменты, которые используют API и сервер.

Ответы [ 2 ]

4 голосов
/ 11 марта 2020

Проверка Chrome DevTools для устранения проблемы.

enter image description here

Ваш вызов перенаправляется со следующими параметрами запроса.

sitename: ~Season 4
limit: 1

Если вы выберете закодированное представление, вы ' Вы увидите виновника.

enter image description here

Итак, как и следовало ожидать, это так же просто, как двойное кодирование URL.

Если вам нужно использовать terraref.org в качестве базового URL, замените пробел знаком плюс.

https://terraref.org/bety/api/v1/search.json?sitename=~Season+4&limit=1
3 голосов
/ 11 марта 2020

Каким-то образом вы кодируете значение для sitename 2 раза. В этом примере декодированное значение равно Season 4, когда вы кодируете в первый раз Season%204 и делаете это во второй раз %20Season%25204.

. Исследуйте код, чтобы убедиться, что значение для sitename уже закодировано, и вы делаете это снова.

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