Nagłówki niestandardowe Luasocket, 404 zmieniają się na 301
Moje poprzednie pytanie dotyczyło pobierania tytułu stronylua używającsocket.http
moduł. Pytanieleży tutaj. Wcześniej strony youtube doprowadziły mnie doStrona błędu 404. Oparte naPomoc MattJ, Umieściłem zwyczajHOST
nagłówek żądania. To właśnie zrobiłem i jaki był rezultat:
<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>Wynik
<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>
O ile mogłem z tego zrozumieć, błąd jest głównie spowodowanyX-Content-Type-Options
cennynosniff
. Czytanie jejdokumentacja, Muszę to wiedziećjedyna zdefiniowana wartość, „nosniff”, uniemożliwia Internet Explorer od wąchania MIME odpowiedzi poza zadeklarowanym typem zawartości.
Pomóż mi, abym mógł użyć niestandardowego proxy i pobrać tytuł z YouTube (i kilka innych stron, jak wspomniano w poprzednim pytaniu). Oto kompletny plik LUA, który aktualnie mam:
<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>