cloud9 (API-Erfassungsseite) lokal (API-Anbieter) ruby 2.6.3 Rails 6.0.2.1
controller
def index
uri = `curl -v -X GET "http://stage-smartyoyaku-env.ap-northeast- 1.elasticbeanstalk.com/api/v1/tasks" \
-H "Authorization:Inhaber schreiben Token hier"`
@test = JSON.parse(uri)
end
viewfile
<%= @test %>
Wenn Sie den Befehl curl im Cloud9-Terminal eingeben. ..
curl: (7) Failed to connect to localhost port 3000: Connection refused
Wenn ich nachschaue, scheint der Server nicht gestartet zu sein oder die Portnummer ist falsch. Ich habe mit einem Browser auf localhost: 3000 zugegriffen, aber es gibt kein Problem. Es gab auch eine Portnummer, aber ...
-Ich drücke den Curl-Befehl in der Cloud9-seitigen App. (Seite erwerben) -Startete eine App, die API auf 3000 Port in der lokalen Umgebung bereitstellt. (Seite bereitstellen) ← Wichtig hier
Hmm? Sie können von Cloud9 (im Internet) keine lokale Verbindung herstellen.
$ lsof -i:3000
$
Überprüfen Sie, ob 3000port in Cloud9 verwendet wird → Nicht angezeigt
Mit anderen Worten, die Seite, die die API bereitstellt, muss die URL mit Heroku usw. im Internet veröffentlichen und die Daten daraus abrufen.
Es gibt einen kleinen Unterschied zwischen der Eingabe des Befehls curl im Terminal und dem Schreiben in den Controller. Fügen Sie im Controller den Befehl curl in `` ein.
Für Terminal
$ curl -v -X GET "http://stage-smartyoyaku-env.ap-northeast-1.elasticbeanstalk.com/api/v1/tasks" \
-H "Authorization:Inhaber schreiben Token hier"
Für Controller
def index
uri = `curl -v -X GET "http://stage-smartyoyaku-env.ap-northeast- 1.elasticbeanstalk.com/api/v1/tasks" \
-H "Authorization:Inhaber schreiben Token hier"`
end
Recommended Posts