2017-09-15 3 views
0

J'ai cherché à travers plusieurs tutoriels et questions sur stackoverflow et d'autres sites mais je n'arrive toujours pas à comprendre pourquoi mon script produit une erreur: socket raccrocher ...Socket raccrocher sur le nœud js demande https

J'espère que vous pouvez m'aider J'ai implémenté un serveur https comme dans le tutoriel sur https://www.pixelstech.net/article/1445603357-A-HTTPS-client-and-HTTPS-server-demo-in-Java

fonctionne parfaitement et aussi le client fonctionne. Mais quand je veux créer une demande en javascript et l'exécuter avec nœud js que je reçois l'erreur connue ...

Mon fichier .js:

var https = require('https'); 

var data = JSON.stringify({ 
    firstName: 'JoaquÌn', 
}); 

function getCall() { 
    //initialize options values, the value of the method can be changed to POST to make https post calls 
    var options = { 
     host : 'localhost', 
     port : 9999, 
     path : '/', 
     rejectUnauthorized: false, 
     method : 'POST', 
     headers: {'Connection': 'keep-alive', 
      'Content-Type': 'application/json; charset=utf-8', 
        'Content-Length': Buffer.byteLength(data)} 
    } 

    //making the https get call 
    var getReq = https.request(options, function(res) { 
     console.log("\nstatus code: ", res.statusCode); 
     res.on('data', function(data) { 
      console.log(JSON.parse(data)); 
     }); 
    }); 

    //end the request 
    getReq.end(); 
    getReq.on('error', function(err){ 
     console.log("Error: ", err); 
    }); 
} 

getCall(); 

Mon erreur:

Error: { Error: socket hang up 
    at createHangUpError (_http_client.js:253:15) 
    at TLSSocket.socketOnEnd (_http_client.js:345:23) 
    at emitNone (events.js:91:20) 
    at TLSSocket.emit (events.js:185:7) 
    at endReadableNT (_stream_readable.js:974:12) 
    at _combinedTickCallback (internal/process/next_tick.js:80:11) 
    at process._tickCallback (internal/process/next_tick.js:104:9) code: 'ECONNRESET' } 

IntelliJ produit cette partie quand je suis en cours d'exécution du script:

SSLSession : 
    Protocol : TLSv1.2 
    Cipher suite : TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 
Inut : POST/HTTP/1.1 
Inut : Connection: keep-alive 
Inut : Content-Type: application/json; charset=utf-8 
Inut : Content-Length: 24 
Inut : Host: localhost:9999 
Inut : 

J'espère que vous pouvez hel p moi parce que je ne sais pas pourquoi je reçois l'erreur que j'ai essayé plusieurs solutions, mais aucun d'entre eux a travaillé pour moi ...

Thx et meilleurs voeux Martin

Répondre

0

En supposant que vous avez déjà un serveur HTTP en cours d'exécution sur le port configuré, vous devrez changer host: 'localhost'-host: 'http://localhost'

Il pourrait être soit http ou https en fonction du protocole que vous avez configuré.

+0

Hey :) Thx pour la réponse, mais après avoir changé la ligne de localhost à l'adresse http localhost je reçois cette réponse: getaddrinfo ENOTFOUND https:: 'Erreur: {erreur // localhost https: // localhost: 9999 à errnoException (dns.js: 28: 10) à GetAddrInfoReqWrap.onlookup [comme onComplete] (dns.js: 76: 26) code: 'ENOTFOUND', errno: 'ENOTFOUND', syscall: 'getaddrinfo' , nom_hôte: 'https: // localhost', hôte: 'https: // localhost', port: 9999} ' – Kellrkind

+0

Pourriez-vous placer le code mis à jour. Les erreurs suggèrent que vous utilisez 'https'. Je suppose que le serveur fonctionne déjà sur le port mentionné –

+0

Hey Désolé pour la réponse tardive, mais nous avons changé notre manière technique et nous utilisons un serveur Wildfly (Wildfly Swarm) pour communiquer avec notre Frontend :) Mais merci vous beaucoup :) – Kellrkind