Marklogic URL кодирование - PullRequest
       28

Marklogic URL кодирование

0 голосов
/ 11 декабря 2018

MarkLogic версия - 9.0-6.2

У меня есть пользовательская конечная точка REST, которая принимает номер телефона в качестве параметра.Мое требование - прочитать этот введенный номер телефона из URL, сравнить с номером телефона в базе данных и вернуть Match / NoMatch.

Когда я вызываю URL через инструмент SoapUI со значением номера телефона + 1-800-723-1800, я вижу, что инструмент soapUI отправляет запрос GET в MarkLogic как & PhoneNo =% 2B1-800-723-1800.Когда я сравниваю (используя === в javascript) это значение со значением в базе данных, я получаю ожидаемый результат.

Однако, когда тот же вызов выполняется через IIB (IBM Integration Bus), я вижу в журналах MarkLogic, что запрос GET выполняется как & PhoneNo = + 1-800-723-1800 (+ не закодировано).Теперь этот результат сравнения отображается как NoMatch, хотя в базе данных у меня точно такое же значение.

Это проблема с кодировкой?Как мне справиться с кодировкой в ​​MarkLogic?

1 Ответ

0 голосов
/ 11 декабря 2018

Q: по "Это значение" и "точно такое же значение в базе данных", что это за значение в точности?

A: Какой бы инструмент (в данном случае IIB) выполнял HTTP-запрос, а не кодировал+ либо неверен, либо ожидалось, что вызывающий этот инструмент отвечал за кодировку URL.Поскольку для правильного кодирования URL требуется, чтобы каждый компонент URL кодировался отдельно (а не весь URL-адрес), обычно библиотеки, которые принимают полные URL-адреса, ожидают, что они уже закодированы, поскольку они не могут правильно кодировать сам полный URL-адрес.

В: Какой код дает МИБ URL для использования? вероятно, что код является кодом, ответственным за правильное кодирование URL (где + должен быть закодирован в процентах, или он будет декодирован как пробел)

...