2011-10-01 90 views
13

我deubgging某些HTTP请求,我发现我能抢请求头在这种类型的格式:如何使用wget(或curl)与原始标题复制请求?

GET /download?123456:75b3c682a7c4db4cea19641b33bec446/document.docx HTTP/1.1 
Host: www.site.com 
User-Agent: Mozilla/5.0 Gecko/2010 Firefox/5 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-us,en;q=0.5 
Accept-Encoding: gzip, deflate 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Referer: http://www.site.com/dc/517870b8cc7 
Cookie: lang=us; reg=1787081http%3A%2F%2Fwww.site.com%2Fdc%2F517870b8cc7 

是否有可能或有一个简单的方法来重建使用wget或卷曲这个请求(或其他CLI工具?)

从阅读wget的手册,我知道我可以设置几个单独这些事情,但是否有发送与命令行所有这些变量的要求更简单的方法?

回答

16

是的,你只需要使用--header

wget --header="User-Agent: Mozilla/5.0 Gecko/2010 Firefox/5" \ 
--header="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" \ 
--header="Accept-Language: en-us,en;q=0.5" \ 
--header="Accept-Encoding: gzip, deflate" 
--header="Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7" \ 
--header="Cookie: lang=us; reg=1787081http%3A%2F%2Fwww.site.com%2Fdc%2F517870b8cc7" \ 
--referer=http://www.site.com/dc/517870b8cc7 
http://www.site.com/download?123456:75b3c682a7c4db4cea19641b33bec446/document.docx 

如果你正在尝试做一些非法下载到所有的头相结合,
它可能会失败,
是取决于如何托管URL被编程

+0

伟大的工作。这是否可以使用CURL? – cwd

4

这里是curl版本:

curl http://www.example.com/download?123456:75b3c682a7c4db4cea19641b33bec446/document.docx \ 
-H "User-Agent: Mozilla/5.0 Gecko/2010 Firefox/5" \ 
-H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" \ 
-H "Accept-Language: en-us,en;q=0.5" \ 
-H "Accept-Encoding: gzip, deflate" 
-H "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7" \ 
-H "Cookie: lang=us; reg=1787081http%3A%2F%2Fwww.site.com%2Fdc%2F517870b8cc7" \ 
-H "Referer: http://www.example.com/dc/517870b8cc7" 

在Chrome开发者工具,可以使用复制为卷曲赶上要求为curl

+0

有没有办法指定标题的顺序? (对于一些奇怪的用例很重要) –