如何给每个curl命令发送相同的cookie?

nzkunb0c  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(176)

我正在测试curl,对这种语言非常陌生。
让我解释一下我在做什么。
http://somewebsite.com/click?param1=10&param2=523“这是我在浏览器中点击的url,使用Inspect元素,我得到了以下curl bash值--

curl 'http://somewebsite.com/click?param1=10&param2=523' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: en-US,en;q=0.9' -H 'Cookie: pdval=9bc5d1fa982ff4c1e1f3d224' --compressed

现在,每次我在浏览器中点击该url时,参数“pdval”的值都会发生变化。
在Linux中使用curl读取bash脚本中的-H值是否有任何选项?
任何帮助都是最好的。谢谢。

7ivaypg9

7ivaypg91#

由于pdval位于cookie中,因此您可以使用**-B-c**选项执行与cookie相关的任务。

-c,--饼干罐< filename >

(HTTP)指定您要curl在完成作业后将所有Cookie写入哪个档案。Curl会在作业结束时,将所有Cookie从内存Cookie储存区写入指定的档案。如果没有已知的Cookie,就不会写入数据。档案会以Netscape Cookie档案格式写入。如果您将文件名称设定为单一破折号“-",Cookie就会写入stdout。

-B,--cookie〈名称=数据〉

(HTTP)将Cookie标头中的数据传递到HTTP服务器。它应该是以前在“Set-Cookie:“行中从服务器接收到的数据。数据的格式应为“NAME 1 = VALUE 1;名称2 =值2”。
如果参数中没有使用'='符号,则会将其视为文件名,以从中读取以前存储的Cookie。
所以如果你设置了**-c选项,curl会自动把cookie存储在一个文件中,你必须使用-B**来告诉curl从那个文件中获取cookie。
所以你的命令应该如下:

curl 'http://somewebsite.com/click?param1=10&param2=523' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: en-US,en;q=0.9' -b /tmp/somewebsite.cookie -c /tmp/somewebsite.cookie --compressed

相关问题