Luasocket benutzerdefinierte Header, 404 dreht sich um 301
Meine vorherige Frage betraf das Abrufen des Seitentitels inlua Verwendung dersocket.http
Modul. Die Frageliegt hier. Zuvor führten mich Youtube-Seiten zu einem404 Fehlerseite. Beyogen aufMattJs HilfeIch habe BrauchHOST
Header für die Anfrage. Das habe ich gemacht und was war das Ergebnis:
<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>Ergebnis
<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>
Soweit ich das nachvollziehen konnte, liegt der Fehler im Grunde anX-Content-Type-Options
geschätztnosniff
. Lesen seinerDokumentation, Das habe ich erfahrenDer einzige definierte Wert, "nosniff", verhindert, dass Internet Explorer eine vom deklarierten Inhaltstyp abweichende Antwort per MIME-Sniff abruft.
Bitte helfen Sie mir, damit ich einen benutzerdefinierten Proxy verwenden und den Titel von YouTube (und einigen anderen Websites, wie in der vorherigen Frage erwähnt) von ihrem Körper abrufen kann. Hier ist die vollständige LUA-Datei, die ich derzeit habe:
<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>