Как отправить информацию заголовка в cfhttpparam

Мне были даны следующие инструкции по извлечению списка данных JSON из веб-сервиса.

GET /criminal_api/1.0/service/requests
HTTP Header: Authorization: Bearer 6EDC52118E164AE659EA2C772F3B9804

Следующие значения в заголовке Bearer 6EDC52118E164AE659EA2C772F3B9804 являются динамическими и будут установлены с использованием следующей переменной content

 <cfset content = deserializeJSON(    {
       "access_token": "84F224956C6AB5287038C0209EBAC5AB",
       "token_type": "bearer",
       "refresh_token": "E48BB9C164FE2125D3BE2CD602E4A692",
       "expires_in": 7199,
       "scope": "read write"
    })>

Итак, я пробовал следующее:

<cfhttp method="get" url="https://test.mywebsite.com/criminal_api//1.0/service/requests" result="orderList">
    <cfhttpparam type="HEADER" name="Authorization" value="#content.token_type# #content.access_token#">
</cfhttp>

Но когда я проверяю содержимое файла вместо получения списка JSON, я получаю: Connection Failure

У меня такое чувство, как я устанавливаю значение заголовка. Я просто не уверен, что делаю неправильно.

EDIT: Когда я добавил ":" между типом токена и токеном доступа, я получил новую ошибку:

struct
error   -1
error_description   Invalid access token: : 82D773278FB69CFBCFB4CB8CEF8AC03D

Очевидно, он считает, что «:» является частью токена доступа, поэтому он подключается. Я просто не уверен, как иметь оба значения в поле value =, чтобы оно читалось правильно.


person Denoteone    schedule 28.04.2016    source источник
comment
Сбой соединения обычно означает, что вы вообще не устанавливаете соединение. Если бы это было связано с требуемым заголовком или проблемой с содержимым, я бы ожидал другого сообщения. Убедитесь, что: A) ваш сертификат установлен в хранилище ключей - что Java может рукопожатие с рассматриваемым сайтом с использованием SSL/TLS B) что сервер правильно разрешает IP-адрес.   -  person Mark A Kruger    schedule 28.04.2016
comment
Отметьте, что предыдущий cfhttp получил тот же адрес, чтобы извлечь данные JSON access_token, которые смогли подключиться без проблем. Только когда я нажимаю тот же URL-адрес, но запрашивает другой метод, и я должен передать информацию в предыдущем вызове в заголовке, я получаю сообщение об отсутствии соединения. Извините, я не уверен, понимаю ли я JAVA, так как я делаю это в coldfusion. пожалуйста, объясните, и я был бы рад следить за этим. Спасибо за ваш ответ.   -  person Denoteone    schedule 28.04.2016
comment
Я добавил правку в свой вопрос, которая может помочь сузить происходящее.   -  person Denoteone    schedule 28.04.2016
comment
Насколько специфичен веб-сервис? В инструкциях показана заглавная буква «B» для типа токена Bearer, но в вашем примере передается строчная буква «b» для типа токена bearer.   -  person Miguel-F    schedule 28.04.2016
comment
Я выплевываю его обратно в себя. Первый вызов веб-службы получает термин носителя, в этом случае я просто сохраняю его в переменной. Так что я держал это таким образом. Как вы думаете, deserializeJSON изменит дело?   -  person Denoteone    schedule 28.04.2016
comment
Нет, я не думаю, что deserializeJSON изменит дело. Я просто исхожу из той информации, которую вы предоставили. Один верхний, другой нижний. HTTP Header: Authorization: Bearer 6EDC52118E164AE659EA2C772F3B9804 против "token_type": "bearer",   -  person Miguel-F    schedule 28.04.2016
comment
RE мой первый комментарий - если вы можете сделать любое успешное TLS-соединение с URL-адресом, значит, у вас все в порядке с проблемой сертификата и вы можете игнорировать мое предложение.   -  person Mark A Kruger    schedule 29.04.2016


Ответы (1)


Ты пытался:

<cfhttp method="get" url="https://test.mywebsite.com/criminal_api//1.0/service/requests" result="orderList" username="#content.token_type#" password="#content.access_token#">

This will produce an authorization header of "Basic Bearer:6EDC52118E164AE659EA2C772F3B9804"

Вручную это будет:

<cfhttp method="get" url="https://test.mywebsite.com/criminal_api//1.0/service/requests" result="orderList">
<cfhttpparam type="HEADER" name="Authorization" value="Basic #content.token_type#:#content.access_token#">

There's also the question of what that hex value contains. Take a look at Getting Basic Authentication to work with ColdFusion - maybe this more closely reflects your situation.

person GumbyG    schedule 29.04.2016