Ich versuche derzeit eine CURL-Anfrage mit Knoten zu machen.Convert PHP CURL in NPM CURL
Ich habe folgende ROTATION Anfrage in PHP: -
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.website.com');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_POSTFIELDS, '');
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: token XXX',
'Content-Type: application/json'
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
Ich brauche diese gleiche ROTATION Anfrage in Knoten auszuführen. Ich habe viele verschiedene NPM-Pakete versucht und mich auf curljs festgelegt.
Ich habe den folgenden Code: -
var curl = require("curljs");
var curlOpts = curl.opts.connect_timeout(10);
curl("https://www.website.com -H Authorization: token XXX -H Content-Type: application/json --get", curlOpts, function(err, data, stderr) {
console.log(err);
console.log(data);
console.log(stderr);
});
Ich bin in der Lage, eine Antwort vom Server ohne Fehler zu bekommen, aber es kehrt keine Daten. erhalte ich die folgende Antwort: -
null
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
Würde mit einem Stoß in der richtigen Richtung zu helfen, jemand in der Lage sein?
Jede Hilfe würde sehr geschätzt werden.
Auf einer anderen Anmerkung: -
Ich habe auch versucht request
Hier zu verwenden ist mein Code: -
var request = require('request');
var options = {
url: 'https://www.website.com',
headers: {
'Authorization': 'token XXX',
'Content-Type': 'application/json'
}
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
var info = JSON.parse(body);
console.log(info);
} else {
console.log(body);
}
}
request.get(options, callback);
Aber es hält einen Fehler zurückgegeben.
Mit node-fetch liefert auch die gleichen Fehler: -
fetch("https://www.website.com", {
method: "GET",
headers: {
Authorization: "token XXX",
"Content-Type": "application/json"
}
}).then(function(response) {
return response;
}).then(function(response) {
console.log(response);
});
Die PHP-Version perfekt funktioniert, bin ich nicht die Header richtig zu konfigurieren?
Ich bin von PHP zu Node bewegt. Eine der besten Eigenschaften von Node ist die Möglichkeit, HTTP-Anfragen zu stellen. Müssen Sie CURL verwenden? Ich vermute, deine Aufgabe wäre besser mit einer Bibliothek wie RequestJS erledigt. Ich möchte nie wieder curl_setopt :) –
Ich versuche, JSON von einer API-Anfrage zurückzugeben. Würdest du mit RequestJS ein Beispiel geben können? Ich bin nicht auf die Verwendung von Curljs, schien nur das Beste der Pakete, die ich finden konnte. –
Es gibt viele Möglichkeiten, JSON zu erhalten. Mein Favorit ist holen. Verwenden Sie es einfach wie im Browser. npm installiert node-fetch. Dann 'fetch ('http://www.website.com'). Dann (res => res.json()). Dann (res => // etwas tun)'. Wenn Sie Autorisierungsheader benötigen, können Sie das auch tun. RequestJS kann es auch tun. Kommt nur auf deine Vorliebe an. Ich habe beides benutzt. –