2016-05-31 2 views
1

Ich benutze LuaForWindows (neueste Version) und ich habe this und this Antwort und alles lese ich in den mailinglist von lua-users.org finden konnte. Was auch immer ich versuche (die meisten) Seiten antworten nur entweder mit 301 oder 302. Ich habe ein Beispiel-Batch-Skript erstellt, das (einige) der OpenGL 2.1-Referenz von ihren man-Seiten herunterlädt.LuaSocket HTTP-Anfragen reagieren immer mit einer Umleitung (301 oder 302)

@ECHO OFF 

FOR /F "SKIP=5" %%# IN (%~fs0) DO lua -l socket.http -e "print(socket.http.request('https://www.opengl.org/sdk/docs/man2/xhtml/%%#.xml'))" 
GOTO:EOF 

glAccum 
glActiveTexture 
glAlphaFunc 
glAreTexturesResident 
glArrayElement 
glAttachShader 
glBegin 
glBeginQuery 
glBindAttribLocation 
glBindBuffer 

der wichtigste Teil ist dies:

print(require('socket.http').request('https://www.opengl.org/sdk/docs/man2/xhtml/glAccum.xml')) -- added glAccum so you can run it 

Diese gibt immer ein 301. Das ist mir passiert auch, wenn von anderen zufälligen Seiten herunterzuladen. (Ich notiere sie nicht, aber ich kann nicht eine Liste geben, aber ich fand heraus, einige von ihnen verwenden Cloudflare.)

Wenn ich einen entsprechenden Downloader in Java mit URL und openConnection() schreiben wird es nicht umleiten.

Ich habe bereits versucht, die Umleitung manuell (Einstellung refferer und Zeug) und mit the 'generic' way. Wie die meisten Tipps in anderen Antworten angegeben.

Antwort

1

Sie verwenden socket.http, aber versuchen Sie, auf https URL zuzugreifen. luasocket behandelt das HTTPS-Protokoll nicht, sendet also stattdessen eine Anfrage an den Standard-Port 80 und erhält eine Weiterleitung an HTTPS-Link (gleicher Link); Das geht mehrere Male (da sich die URL nicht wirklich ändert), und am Ende gibt luasocket die Erstellung der Nachricht auf.

Die Lösung ist install luasec und ssl.https Modul zu verwenden, um die Anfrage zu tun.

+0

Danke! Da diese Dinge, die ich getestet habe, ziemlich alt waren, habe ich immer http getestet. Heute ist alles https (oder Konvertieren zu) und diese ordentlich versteckten Dinge sind leicht zu übersehen ... wie ein s am Ende von http in den Vorschlägen. Ich sollte auch darauf hinweisen: http://StackOverflow.com/Questions/10306489 UND http://StackOverflow.com/Questions/10360632 – tDwtp