Вопрос по http-headers, lua, luasocket, sockets – Пользовательские заголовки Luasocket, 404 витка к 301

2

Мой предыдущий вопрос был о получении заголовка страницы вlua с использованиемsocket.http модуль. Вопрослежит здесь, Ранее страницы YouTube привели меня к404 error page, На основеПомощь MattJКладу на заказHOST заголовок для запроса. Вот что я сделал и каков был результат:

Code
<code>header = { host= "youtube.com" }
local result,b,c,h = http.request{ url = "http://www.youtube.com/watch?v=_eT40eV7OiI", headers = header }
print ( result, b, c, h )
for k,v in pairs(c) do print(k,v) end
</code>
Result
<code>1   301 table: 0047D430 HTTP/1.1 301 Moved Permanently
x-content-type-options  nosniff
content-length  0
expires Tue, 27 Apr 1971 19:44:06 EST
cache-control   no-cache
connection  close
location    http://www.youtube.com/watch?v=_eT40eV7OiI
content-type    text/html; charset=utf-8
date    Sat, 28 Apr 2012 04:26:21 GMT
server  wiseguy/0.6.11
</code>

Насколько я смог понять из этого, ошибка в основном из-заX-Content-Type-Options ценныйnosniff, Читая егодокументацияЯ узнал, чтоthe only defined value, "nosniff", prevents Internet Explorer from MIME-sniffing a response away from the declared content-type.

Пожалуйста, помогите мне, чтобы я мог использовать собственный прокси и получить название YouTube (и некоторых других сайтов, как упоминалось в предыдущем вопросе) с их тела. Вот полный файл LUA, который у меня есть:

<code>local http = require "socket.http"
http.PROXY="http://<proxy address here>:8080"
header = { host= "youtube.com" }
local result,b,c,h = http.request{ url = "http://www.youtube.com/watch?v=_eT40eV7OiI", headers = header }
print ( result, b, c, h )
for k,v in pairs(c) do print(k,v) end
</code>

Ваш Ответ

2   ответа
3

Я считаю, что эта строка должна быть изменена:

 header = { host= "youtube.com" }

Для того, чтобы:

 header = { host= "www.youtube.com" }

После этого у меня работает.

Нет, я пытался сwww вhost имя тоже результат был все тот же. hjpotter92
0

The solution is to install luasec and to use ssl.https module to do the request.

ОтветилВот отПавел Кульченко!

Пример:

-- luasec version 0.4.2
require("ssl")
require("https")
-- ssl.https.request(...)

Похожие вопросы