gpt4 book ai didi

奇怪参数的PHP curl请求

转载 作者:可可西里 更新时间:2023-10-31 23:14:09 24 4
gpt4 key购买 nike

我正在尝试自动注册类(class)(因为我总是忘记这样做)当我手动注册时,它会在特定日期使用此 url 上课:

https://URL.com/public/tickets.php?PRESET%5BTickets%5D%5Bname%5D%5B%5D=&PRESET%5BTickets%5D%5Bday%5D%5B%5D=2018- 03-04

解码成

https://URL.com/public/tickets.php?PRESET[Tickets][name][]=&PRESET[Tickets][day][]=2018-03-04

但我很难将其转换为 curl 请求。我已经(除其他外)尝试过

$data = array("PRESET" => array("Tickets" => array("name"=>array(""), "day"=> array("2018-03-02"))));

$data = array('PRESET[Tickets][naam][]=', 'PRESET[Tickets][naam][]=');

但我总是看到一个没有选择日期的页面。有时页面上会出现关于参数应为数组的 php 错误。

这是我的 curl 请求

curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_URL, $targetSite);
curl_setopt($curl, CURLOPT_COOKIEFILE, $this->cookie);
curl_setopt($curl, CURLOPT_COOKIEJAR, $this->cookie);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);

有人能告诉我如何使用 curl 请求正确发送参数吗?谢谢!

最佳答案

当您将它放入 CURLOPT_POSTFIELDS 时,您是将它放入请求正文,而不是请求 URL。此外,当您给 CURLOPT_POSTFIELDS 一个数组时,curl 会将其编码为 multipart/form-data 格式,但您需要对其进行 urlencoded(这与 multipart/form-data 不同)。删除所有 POST 代码,并使用 http_build_query 构建 url,

curl_setopt ( $ch, CURLOPT_URL, "https://URL.com/public/tickets.php?" . http_build_query ( array (
'PRESET' => array (
'Tickets' => array (
'name' => array (
0 => ''
),
'day' => array (
0 => '2018-03-04'
)
)
)
) ) );

和protip,你可以使用parse_str()将urls解码成php数组,此外,你可以使用var_export获取有效的php代码来在运行时创建那个数组,最后,如上所示,你可以使用http_build_query来将该数组转换回 url,that's what i did here.

关于奇怪参数的PHP curl请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49094177/

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