2016-04-28 14 views
2

Ich habe die folgenden Anweisungen gegeben, um eine JSON-Liste von Daten von einem Webservice zu ziehen.So senden Sie Header-Informationen in cfhttpparam

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

Die folgenden Werte im Header Bearer 6EDC52118E164AE659EA2C772F3B9804 sind dynamisch und werden unter Verwendung der folgenden content Variable

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

ich folgendes versucht bin so eingestellt werden:

<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> 

Aber wenn ich überprüfen der Dateiinhalt, anstatt eine JSON-Liste zu erhalten, bekomme ich:

Ich habe das Gefühl, es ist, wie ich den Header-Wert einstellen Ich bin nur nicht sicher, was ich falsch mache.

EDIT: Als ich hinzugefügt „:“ zwischen dem Token-Typ und Zugriffstoken bekam ich einen neuen Fehler:

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

Offensichtlich es denkt, die „:“ Teil des Zugriffstoken ist So ist es Verbindung Ich bin nur nicht sicher, wie Sie beide Werte im Wert = Feld haben, so dass es richtig gelesen wird.

+1

Verbindungsfehler bedeutet normalerweise, dass Sie überhaupt keine Verbindung herstellen. Wenn es etwas mit einem erforderlichen Header oder Inhaltsproblem zu tun hatte, würde ich eine andere Nachricht erwarten. Überprüfen Sie, ob: A) Sie Ihr Zertifikat in den Keystore installiert ist - dass Java Handshake mit der fraglichen Website mit SSL/TLS B), dass der Server die IP-Adresse korrekt löst. –

+0

Markieren Sie die vorherige cfhttp get an die gleiche Adresse, um den access_token JSON-Daten in der Lage, ohne Probleme Verbindung herzustellen. Nur wenn ich die selbe URL anstoße aber eine andere Methode "anfragt" und ich die Info im vorherigen Anruf in den Header weiterleiten soll bekomme ich den keinen Verbindungsfehler. Entschuldigung, ich bin mir nicht sicher, ob ich die JAVA verstehe, da ich dies in Coldfusion mache. Bitte erläutern Sie und ich würde mich freuen, das weiter zu verfolgen. Vielen Dank für Ihre Antwort. – Denoteone

+0

Ich habe meiner Frage eine Änderung hinzugefügt, die helfen kann, einzuschränken, was vor sich geht. – Denoteone

Antwort

1

Haben Sie versucht: ": 6EDC52118E164AE659EA2C772F3B9804 Grund Bearer"

manuell, das wäre:

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

Dies wird eine Genehmigung Header erzeugen

<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#"> 

Es gibt auch die Frage, was der Hexadezimalwert enthält. Werfen Sie einen Blick auf Getting Basic Authentication to work with ColdFusion - vielleicht spiegelt dies Ihre Situation besser wider.