我使用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