eXist-db POST-запрос с авторизацией дает ответ, который содержит 2 элемента. Первые - это заголовки, а второй - невидимые. Когда я помещаю ее в функцию string (), она раскрывается как двоичная строка base64, содержащая json.
Json - это формат по умолчанию (и, вероятно, единственный), к которому подключен API, с которым он отправляет данные авторизации.
Я попытался проверить, добавлены ли некоторые заголовки eXist, но, похоже, все в порядке. Использовал сборщик запросов и получил эти данные:
OST / HTTP/1.1
Host: endpoint.requestcatcher.com
Accept-Encoding: gzip,deflate
Authorization: Basic OWJhMT...
Connection: Keep-Alive
Content-Length: 0
Content-Type: code
Status-Only: false
User-Agent: Apache-HttpClient/4.5.5 (Java/12.0.1)
Это мой код функции:
declare function auth:get-access-token() {
let $accessTokenResponse :=
hc:send-request(<hc:request method = 'post' href='https://endpoint.requestcatcher.com'>
<hc:header name = 'Authorization' value = 'Basic { $auth:base64credentials }'/>
<hc:header name = 'status-only' value = 'false'/>
</hc:request>)
return $accessTokenResponse
};
Фактический результат заключается в том, что тело ответа содержит строку в кодировке base64, содержащую данные json.
Я хотел бы получить данные json, которые первоначально отправлялись конечной точкой авторизации API.