2017-01-10 3 views
0

Der folgende curl-Befehl wird in der vage virtuellen NodeJS-Box ausgeführt.Curl GET von vagrant nodejs. Die angeforderte URL konnte nicht vom angeforderten Server abgerufen werden.

IP-Adresse für localhost - 10.29.12.152

curl http://10.29.12.152:3002/api/v1/suggest/zeta-spot-cms/documents?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9CJyfw&term=xfinity

Und auch habe ich die Liste API-Endpunkt mit Express.js entwickelt.

Wenn ich den oben genannten API-Endpunkt im Webbrowser ausführen, wird es die Ergebnisse aus der lokalen Umgebung erhalten.

[ 
{ 
_index: "zeta-spot-cms", 
_type: "documents", 
_id: "AVmCw40nHO6bFVnpAj-5", 
_score: 1, 
_source: {} 
} 
] 

Der Versuch, diese API als Curl-Befehl in vagrant virtuellen Box zu verwenden. Ich habe folgenden Fehler erhalten.

<div id="titles"> 
<h1>ERROR</h1> 
<h2>The requested URL could not be retrieved</h2> 
</div> 
<hr> 

<div id="content"> 
<p>The following error was encountered while trying to retrieve the URL: <a href="http://10.29.12.152:3002/api/v1/suggest/zeta-spot-cms/documents?">http://10.29.12.152:3002/api/v1/suggest/zeta-spot-cms/documents?</a></p> 

<blockquote id="error"> 
<p><b>Connection to 10.29.12.152 failed.</b></p> 
</blockquote> 

<p id="sysmsg">The system returned: <i>(113) No route to host</i></p> 

<p>The remote host or network may be down. Please try the request again.</p> 

Können Sie mir vorschlagen, Wie kann ich den curl Befehl in vagrant virtuellen Feld erhöhen, um die Ergebnisse des localhost zu erhalten.

Vielen Dank im Voraus!

Antwort

0

Es ist ein bisschen schwer für mich, genau zu verstehen, was Sie fragen, also lassen Sie mich zuerst klarstellen - Ich interpretiere deine Frage so, dass du eine virtualbox-VM hast, die Vagrant verwaltet, und du hast eine node.js Anwendung läuft innerhalb dieser VM. Wenn Sie über den Browser Ihres (Host-Systems) auf die Anwendung zugreifen, erhalten Sie die erwarteten Ergebnisse. Aber wenn Sie versuchen, curl von innerhalb der VM zu verwenden, erhalten Sie den oben kopierten Fehler "keine Route zum Host".

Angenommen, das ist alles richtig, denke ich, die Antwort ist ziemlich einfach. Ich nehme an, dass virtualbox VM nicht weiß, dass seine IP-Adresse 10.29.12.152 ist. Folglich wissen Befehle, die von innerhalb der VM ausgeführt werden, nicht, wie diese IP-Adresse zu erreichen ist. Aus Ihrer Beschreibung ist mir nicht klar, ob diese IP auch kommt.

Wenn meine Hypothese korrekt ist, sollten Sie in der Lage sein, 10.29.12.152 durch 127.0.0.1 zu ersetzen, und der Befehl sollte funktionieren.

Eine weitere Problemlösungstechnik wäre die Ausführung von ifconfig in der Befehlszeile und sehen, welche IP-Adressen angezeigt werden.

+0

danke für schnelle Antwort @Geoff Gerrietzs, Nodejs Anwendung läuft nicht in Virtualbox VM. Welche läuft in der lokalen Maschine (10.29.12.152). Ich möchte den curl-Befehl innerhalb der virtualbox-VM ausführen. Wenn ich 127.0.0.1 anstelle von IP-Adresse gebe, bekam ich curl: (7) konnte keine Verbindung zum Host-Fehler herstellen. – Anand

+0

Eigentlich möchte ich diese API in einer anderen Anwendung aufrufen, die in virtualbox VM läuft – Anand

+0

Und auch ich habe mit Ping-Befehl in VM überprüft. Die Ergebnisse sind wie folgt: PING 10.29.12.152 (10.219.162.152) 56 (84) Datenbytes. 64 Byte vom 10.29.12.152: icmp_seq = 1 ttl = 63 Zeit = 0.361 ms 64 Byte vom 10.29.12.152: icmp_seq = 2 ttl = 63 Zeit = 0.296 ms – Anand

Verwandte Themen