我使用LuaForWindows(最新版本),我已阅读this和this答案以及我在lua-users.org的mailinglist中找到的所有内容。我试过的(大多数)站点只能用301或302进行响应。我创建了一个示例批处理脚本,从其手册页下载(一些)OpenGL 2.1 Reference。luaSocket HTTP请求总是以重定向响应(301或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
最重要的部分是这样的:
print(require('socket.http').request('https://www.opengl.org/sdk/docs/man2/xhtml/glAccum.xml')) -- added glAccum so you can run it
这总是返回301从其他随机页面下载时,这也发生在我身上。 (我没有注意到他们,所以我不能给出一个列表,但我偶然发现其中一些使用了cloudflare。)
如果我使用URL和openConnection()编写等效下载器,它不会重定向。
我已经尝试了手动重定向(设置refferer和东西)和使用the 'generic' way。正如其他答案中提到的大多数提示。
谢谢!由于我测试过的东西都很老,我总是测试http。现在每一件事都是https(或转换为),那些整齐地隐藏起来的东西很容易被忽略......就像建议中http末尾的s一样。我也应该指出:http://stackoverflow.com/questions/10306489和http://stackoverflow.com/questions/10360632 – tDwtp