gpt4 book ai didi

curl header 中的 Bash 变量作为用户代理

转载 作者:行者123 更新时间:2023-12-01 22:09:43 26 4
gpt4 key购买 nike

我试图通过 bash 变量将用户代理设置为动态的。但似乎并不是那么简单。

由于如果 header 值包含空格,则 header 需要用单引号括起来,我们无法避免用户代理 header 的单引号,但如果我们这样做,变量将不会被评估,如果我们用双引号替换它, ua 字符串中的空格会造成很多困惑。

推荐的方法是在 curl 命令之外创建所有 header 、数据和 cookie 变量,并一次性使用它。但这是否意味着我们永远无法在 curl 命令中单独设置用户代理变量?

下面给出了我现在尝试使用的命令,

curl --proxy localhost:8000 -m 1 --retry 0  -i -s -S -b cookie.jar -c cookie.jar -X POST "https://myhost:51512/id?val=${id}" -H 'user-agent: Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405'

linux_ua="Mozilla/5.0 (Unknown; Linux) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/v1.0.0 Safari/537.1"
my_user_agent=$linux_ua
curl --proxy localhost:8000 -m 1 --retry 0 -i -s -S -b cookie.jar -c cookie.jar -X POST "https://myhost:51512/id?val=${id}" -H '${user_agent}'

最佳答案

单引号只是简单的 shell 语法,以防止在字符串内进行任何类型的扩展;它们不是 header 本身的一部分。在这种情况下,使用双引号也同样有效。

curl ... -H "user-agent: Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405"

将用户代理存储在变量中很简单:

ua="user-agent: Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405"
curl ... -H "$ua"

在这里,你必须使用双引号来扩展$ua的值;使用 curl ... -H '$ua' 将发送文字 3 字符字符串 $ua 作为 header 。

关于curl header 中的 Bash 变量作为用户代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48913266/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com