2017-10-13 5 views
-2

Ich versuche eine HTTP-Anfrage an eine externe API zu erstellen, um einige Daten zu erhalten. Die erste Anforderung besteht darin, ein Autorisierungstoken zu erhalten, das bei der zweiten HTTP-Anfrage verwendet wird, um die benötigten Daten zu erhalten. Ich habe alles ohne Glück versucht und dies ist das erste Mal, eine Anfrage an eine API zu erstellen. Ich war dieses Beispiel Anfrage gegeben:API-Anfrage Coldfusion (GET-Anfrage)

POST https://api2-test.com/Identity/v1/Token HTTP/1.1 
Host: api2-test.com 
Accept: application/json 
Content-Type: application/x-www-form-urlencoded 

userName=my.account%40mydomain.com&password=MyPassword&grant_type=password 

ich Coldfusion bin mit diesen Ergebnissen aufzubauen und jede Hilfe wirklich geschätzt würde.

EDIT: Dies ist, was ich habe versucht, aber es funktioniert nicht:

<cfhttp url="https://api2-test.com/Identity/v1/Token HTTP/1.1" password="test" username="test2" result="object"> 
    <cfhttpparam type="header" name="Content-Type" value="application/json"> 
</cfhttp> 

EDIT 2: Ich konnte erfolgreich die Daten aus der API erhalten, aber die Ergebnisse nicht verwenden können, . Es heißt, es ist kein JSON-Objekt!

<cfhttp url="#apiURL#" method="get" result="httpResp" timeout="120"> 
    <cfhttpparam type="header" name="Content-Type" value="application/json" /> 
    <cfhttpparam type="formfield" name="method" value="test"> 
</cfhttp> 
[![screen shot of the results][1]][1]<cfdump var="#httpResp#" /> 

Ich weiß nicht, warum das Bild seltsam zeigt aber hier ist der filecontent:

{"access_token":"<TokenIsHere>","token_type":"bearer","expires_in":259199,"userName":"[email protected]","issued":"Tue, 23 May 2017 00:53:39 AD5T","expires":"Fri, 26 May 2017 00:53:39 AD5T"} 

es auch sagt: wddx

codiert
+0

Wo ist Ihr Code? – haxtbh

+0

Alles, was ich bisher getan habe, ist nur mit Tag herumspielen, aber kein Glück mit etwas davon. Der Zweck dieses Post ist nur, um mir zu helfen, eine gültige Anfrage zu erstellen und dann wahrscheinlich nur die Ergebnisse auf der Seite auszugeben, weil ich es von dort aus nehmen kann, wie man mit diesem JSON-Objekt arbeitet. – DoArNa

+0

Wir können es nicht für Sie tun. Sie müssen Ihren Code veröffentlichen, damit wir Ihnen sagen können, wo Sie falsch liegen. Google cfhttp docs gibt Ihnen die Grundlagen einer http-Anfrage. – haxtbh

Antwort

1

Um die JSON-Antwort von einer api Anfrage zugreifen Sie müssen deserializeJSON (cfhttp.fileContent) verwenden, das eine Coldfusion-Struktur zurückgibt. Sie können es mit cfdump verifizieren.