2017-12-11 3 views
1

In Python (und meinem Browser) kann ich eine Anfrage an https://www.devrant.com/api/devrant/rants?app=3&sort=algo&limit=10&skip=0 senden und bekomme eine Antwort, wie erwartet, aber mit Lua, bekomme ich HTTP/1.1 301 Moved Permanently. Hier ist, was ich bisher versucht:301 dauerhaft mit socket.http verschoben

http = require("socket.http"); 
print(http.request("https://www.devrant.com/api/devrant/rants?app=3&sort=algo&limit=10&skip=0") 

, die gibt eine HTTP-Fehlerseite (dauerhaft verschoben) und

301 table: 0x8f32470 http/1.1 301 Moved Permanently 

die Tabelleninhalte sind:

location https://www.devrant.com/api/devrant/rants?app=3&sort=algo&limit=10&skip=0 
content-type text/html 
server nginx/1.10.0 (Ubuntu) 
content-length 194 
connection close 
date Mon, 11 Dec 2017 01:41:35 

Warum funktioniert nur Lua Erhalten Sie diesen Fehler? Wenn ich Google anfrage, bekomme ich die Google-Homepage HTML. Wenn ich an status.mojang.com anfordere, bekomme ich den Mojang-Serverstatus in einer JSON-Antwortzeichenfolge, so dass der Socket für bestimmte Funktionen funktioniert.

Antwort

3

Es ist weil Sie socket.http verwenden, um eine Seite von https URL anzufordern; seit socket.http nicht behandelt https, sendet es die Anfrage an Port 80, die an https URL weitergeleitet wird, aber socket Bibliothek folgt nicht, dass Redirect, da es nicht weiß, was mit HTTPS zu tun, so einfach ist Berichte 301.

Sie müssen installieren und verwenden Sie luasec und verwenden Sie ssl.https anstelle von socket.http, die es funktionieren wird.

+0

Kann ich irgendetwas mit Vanille Lua machen? – AlgoRythm

+1

Nein; du brauchst luasocket und luasec. –

Verwandte Themen