gpt4 book ai didi

google-chrome - CURL 不适用于参数中带有花括号的 URL

转载 作者:行者123 更新时间:2023-12-04 01:17:56 26 4
gpt4 key购买 nike

一些带括号的 URL 不适用于 CURL,但适用于 Chrome 和 Firefox。

例如这个网址:https://rdtrkr.com/mg.php?voluum_id=d51b17bc-c537-4f3e-9879-2e373341ae5a&widget_id={widget_id}&campaign_id={campaign_id}&teaser_id={teaser_id}&geo={geo}&img=guy18.jpg&txt=german&lp=de&click_price={click_price}&click_id={click_id}&{click_id}在 Chrome 和 firefox 中确实有效,但是当使用 CURL 调用时,会出现 404 错误。

curl  \
-H "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36" \
-v "https://rdtrkr.com/mg.php?voluum_id=d51b17bc-c537-4f3e-9879-2e373341ae5a&widget_id={widget_id}&campaign_id={campaign_id}&teaser_id={teaser_id}&geo={geo}&img=guy18.jpg&txt=german&lp=de&click_price={click_price}&click_id={click_id}&{click_id}"

产生结果:
< HTTP/2 404 
< server: nginx
< date: Thu, 13 Dec 2018 16:53:45 GMT
< content-type: text/html; charset=UTF-8
< content-length: 0

但是使用“保留日志”模式下的 chrome 开发者工具,我有:

Chrome dev tool results

CURL 接收 404 而不是 302 重定向。它与 CURL 可能是 URL 编码括号的事实有关吗?我不知道这里出了什么问题。

ps:我不是我在示例中使用的网站的所有者。

最佳答案

大括号是 unsafe in URLs . cURL(与 Google Chrome 不同)试图帮你一个忙并自动对 URL 进行编码。

换句话说,它转换 {%7B}&7D .

为了防止这种行为,您可以使用 -d 传递查询字符串参数。反而。 -d将请求更改为 POST,您还需要使用 -G强制请求为 GET。

所以而不是做

curl "http://example.com?param1=xxx&param2=yyy"

你可以做
curl "http://example.com" -G -d "param1=xxx&param2=yyy"

在您的特定情况下,出于某种原因,您所针对的网络服务器仍将返回 404,除非您提供 Accept-Language标题:
curl -v "http://rdtrkr.com/mg.php" \
-G -d "voluum_id=d51b17bc-c537-4f3e-9879-2e373341ae5a&widget_id={widget_id}&campaign_id={campaign_id}&teaser_id={teaser_id}&geo={geo}&img=guy18.jpg&txt=german&lp=de&click_price={click_price}&click_id={click_id}&{click_id}" \
-H "Accept-Language: en-US,en;q=0.9,fr;q=0.8,ru;q=0.7,es;q=0.6"


*   Trying 34.192.193.118...
* Connected to rdtrkr.com (34.192.193.118) port 80 (#0)
> GET /mg.php?voluum_id=d51b17bc-c537-4f3e-9879-2e373341ae5a&widget_id={widget_id}&campaign_id={campaign_id}&teaser_id={teaser_id}&geo={geo}&img=guy18.jpg&txt=german&lp=de&click_price={click_price}&click_id={click_id}&{click_id} HTTP/1.1
> Host: rdtrkr.com
> User-Agent: curl/7.47.0
> Accept: */*
> Accept-Language: en-US,en;q=0.9,fr;q=0.8,ru;q=0.7,es;q=0.6
>
< HTTP/1.1 302 Found
< Server: nginx
< Date: Thu, 13 Dec 2018 17:39:18 GMT
< Content-Type: text/html; charset=UTF-8
< Content-Length: 0
< Connection: keep-alive
< Location: https://rotronica-premarity.com/d51b17bc-c537-4f3e-9879-2e373341ae5a?widget_id={widget_id}&campaign_id={campaign_id}&teaser_id={teaser_id}&geo={geo}&img=guy18.jpg&txt=german&lp=de&click_price={click_price}&click_id={click_id}
<
* Connection #0 to host rdtrkr.com left intact

关于google-chrome - CURL 不适用于参数中带有花括号的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53766725/

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