2016-10-04 4 views
0

Ich bin neu bei Nodejs sowie Entwicklung. Ich versuche, eine Datensammlung von einer Ernährungsseite im JSON-Format zu bekommen. Wenn ich die URL mit meiner App und API-Schlüssel zusammen mit Kriterien formuliere, um sie in den Browser einzufügen, bekomme ich eine JSON-Daten in Ordnung. Wenn ich versuche, eine POST-Anfrage zu senden, nach der die Site fragt, wenn die Anfrage zurückkommt, sagt sie, dass sie die URL nicht finden kann. Was es tut, ist Anbringen ‚: 443‘ bis zum Ende der Host-URL und wie ich schon sagte zurück als Fehler kommen:POST-Anfrage nicht in der Lage, URL zu finden

Error: getaddrinfo ENOTFOUND https://api.nutritionix.com/v1_1/search https://api.nutritionix.com/v1_1/search:443 

Was würde Ich mag zu tun ist nach dem Ende der URL ist anhänge der 'Post-Daten'.

Hier ist mein Code:

var https = require('https'); 
var querystring = require('querystring'); 


var postData = { // Nutrionix required JSON formt 
    "appId":"MY_APP_KEY", 
    "appKey":"MY_API_KEY", 
    "query": "Lentils", 
    "fields": ["item_name", "nf_calories", "nf_serving_size_qty", "nf_serving_size_unit"], 
    "sort":{ 
     "field":"score", 
     "order":"desc" 
    }, 
    "filters":{ 
     "item_type":"2" 
    } 
}; 
console.log("This is header dta" + postData); 

postBody = querystring.stringify(postData); 

var post_options = { 
    host:"https://api.nutritionix.com/v1_1/search", 
    "port":"443", 
    method:"post", 
    "path":"/", 
    headers:{"Content-Type":"application/json", 
     'Content-Length': postBody.length 
    } 
} 

console.log(post_options); 

var request = https.request(post_options,function(response){ 
    return response; 
}); 

ich auch in Chrome diese Daten in die dev HTTP Add-on bin vorbei und um die richtige Antwort zu erhalten zurück.

Jede Hilfe wäre willkommen.

+0

Host erwähnen müssen: "https://api.nutritionix.com/v1_1/search", "Port": "443", Aren‘ Hast du das in post_options erwähnt? –

+0

@PratikGaikwad Ich bin aber auch wenn ich es entferne bekomme ich immer noch den selben Fehler. Es setzt das: 443 am Ende anstelle von postData. Ich habe es hinzugefügt, weil ich dachte, dass es da sein müsste. Das Einfügen der URL in eine Browse gibt die Site natürlich ohne Daten zurück und fragt nach einem API-Schlüssel, aber wenn ich das: 443 an das Ende setze bekomme ich 'Ressource konnte nicht gefunden werden. –

+0

Können Sie das einmal versuchen? Gastgeber: "https://api.nutritionix.com/v1_1/search/". Entfernen Sie auch 443 aus den post_options –

Antwort

1

Können Sie bitte einen Blick auf this documentation werfen?

Es scheint, dass Sie nicht HTTPS

+0

Das hat geholfen! Was ich getan habe, war "Host" in "Hostname" zu ändern und die URL zu "api.nutritionix.com" geändert und den Pfad auf "/ v1_1/search /" gesetzt und ich bekomme den Fehler nicht mehr gefunden. Ich bekomme jedoch keine Daten zurück, aber das ist ein separates Problem, das ich lösen muss. Du hast meine Frage beantwortet. Danke für Ihre Hilfe. –

0

Nehmen Sie den Anschluss ab, 443 ist der Standardwert für HTTPS.

+0

Dies ist nicht das Problem. Es gibt ungefähr 3 Dinge, die mit OPs "post_options" falsch sind, wobei einer der Pfad in dem "Host" ist und ein anderer der Pfad ist leer. Kannst du das letzte Problem herausfinden? – Derek

+0

tat ich und es ist immer noch das gleiche Ergebnis. Es hängt: 443 an das Ende und ich bekomme den gleichen Fehler. –

Verwandte Themen