luaSocket HTTP请求总是以重定向(301或302)响应

我使用LuaFor Windows(最新版本),我已经阅读了 thisthis的答案以及我在lua-users.org的 mailinglist中找到的所有内容.我尝试(大多数)网站只响应301或302.我创建了一个示例批处理脚本,从他们的手册页下载(一些)OpenGL 2.1 Reference.
@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.)

如果我使用URLopenConnection()在Java中编写一个等效的下载程序,它将不会重定向.

我已经尝试手动重定向(设置refferer和东西)并使用the ‘generic’ way.正如其他答案中所述的大多数提示.

解决方法

您正在使用socket.http,但尝试访问https URL. luasocket不处理HTTPS协议,因此它将请求发送到默认端口80,并获得重定向到HTTPS链接(相同链接);这种情况持续了好几次(因为URL没有真正改变),最后luasocket放弃了产生消息.

解决方案是install luasec并使用ssl.https模块来执行请求.

相关文章

1.进入lua官网http://www.lua.org/ 2.点击download 3.点击get a binary 4.点击[Lua - joedf's ...
    Lua中的函数是一阶类型值(first-class value),定义函数就象创建普通类型值一样(只不过函数类型...
    并发是现实世界的本质特征,而聪明的计算机科学家用来模拟并发的技术手段便是多任务机制。大致上...
    Lua5.0的语法非常简洁,这从参考手册中的语法定义的规模(转换成标准BNF形式大概有100个左右的产...
LUA脚本文档中文翻译(基础)   介绍   Lua读作“鹿啊”,是一种据创作者说的类Pascal脚本语言。巴西...
1. 函数的使用 以下程序演示了如何在Lua中使用函数, 及局部变量 例e02.lua -- functions function pyth...