2016-06-03 10 views
0

Wir versuchen, die Nodejs https Bibliothek zu verwenden, um eine API-Anfrage an die circleci Rest API und erhalten, was scheint, JSON fehlerhaft sein. Leider passiert dies nur, wenn wir einen Knoten verwenden und nicht z. curl oder Postbote.Seltsames Verhalten mit Nodejs und Circleci api

Hier ist der Knoten Code

var https = require('https'); 

https.get("https://circleci.com/api/v1/projects?circle-token=OUR-API-KEY", function(response) { 
    var body = ""; 
    response.on('data', function (chunk) { 
    body += chunk; 
    }); 

    response.on('end', function() { 
    console.log("TEST", body); 
    }); 
}); 

und hier ist der erste Teil des Ergebnisses

TEST ({:irc_server nil, :scopes (:write-settings :view-builds :read-settings :trigger-builds :all :status :none), :irc_keyword nil, 

Hier ist, wie es aussieht, wenn wir das Gleiche mit curl

$ curl https://circleci.com/api/v1/projects?circle-token=OUR-API-KEY 
[ { 
    "irc_server" : null, 
    "ssh_keys" : [ ], 
    "branches" : { 
    "master" : { 
     "last_non_success" : { 
     "outcome" : "failed", 
     "status" : "failed", 
     "build_num" : 41, 
... 

tun Was wir auch bemerkt haben ist, dass es einige java Residuen zu geben scheint e in der node Antwort. Hier ist ein Beispiel von einem anderen Teil der Knotens Antwort

... 
"pushed_at" #object[org.joda.time.DateTime 0x2753b900 "2015-11-29T14:22:42.000Z"], 
"added_at" #object[org.joda.time.DateTime 0x686553cb "2015-11-30T16:07:28.250Z"]}, 
... 

Soweit wir sagen können, ist dies nicht ein Knoten Problem, denn wenn wir die Adresse in dem Skript ändern, um „https://randomuser.me/api/“ wir

bekommen
TEST {"results":[{"gender":"female","name":{"title":"mrs","first":"milja","last":"makinen"},"location":{"street":"7070 pispalan valtatie","city":"geta","state":"central finland","postcode":24464},"email":"[email protected]","login":{"username":"brownwolf135","password":"triton","salt":"Ahx7UsGp","md5":"aa3abe69ad2001470c00de947d112270","sha1":"cc0db5a4ecd489d6f53876ae143cdab117edbba3","sha256":"488268929cd6da0e50fbb61666ddd03136a3ad16914822a650c5d134db9364af"},"registered":1031987491,"dob":908944207,"phone":"05-992-273","cell":"046-791-11-07","id":{"name":"HETU","value":"60770785-G"},"picture":{"large":"https://randomuser.me/api/portraits/women/73.jpg","medium":"https://randomuser.me/api/portraits/med/women/73.jpg","thumbnail":"https://randomuser.me/api/portraits/thumb/women/73.jpg"},"nat":"FI"}],"info":{"seed":"ea5f8a5a02e09d48","results":1,"page":1,"version":"1.0"}} 

Wie Sie sehen können, keine Klammern. Sind wir wirklich die Ersten, die das entdecken, oder fehlt etwas völlig Offensichtliches?

Antwort

1

Haben Sie versucht, den Accept-Header (https://circleci.com/docs/api/#accept-header) bereitzustellen?

Wenn Sie keine Header akzeptieren, geben wir für Menschen lesbare JSON mit Kommentaren zurück. Wenn Sie kompakte JSON ohne Leerzeichen oder Kommentare erhalten möchten, fügen Sie die "application/json" Accept-Header

+0

ah danke :) Es war genau dieses Problem. –