我试图自动注册课程(导致我总是忘记这样做) 当我手动注册时,它会在特定日期使用此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
但是我最难将这个翻译成卷曲请求。我(除其他事项外)尝试了
$data = array("PRESET" => array("Tickets" => array("name"=>array(""), "day"=> array("2018-03-02"))));
和
$data = array('PRESET[Tickets][naam][]=', 'PRESET[Tickets][naam][]=');
但我总是得到一个没有选择日期的页面。有时在页面上有一个关于参数的php错误,该参数应该是一个数组。
这是我的卷曲请求
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请求正确发送参数吗?谢谢!
答案 0 :(得分:3)
当你把它放入CURLOPT_POSTFIELDS时,你将它放入请求体,而不是请求URL。此外,当您为CURLOPT_POSTFIELDS提供一个数组时,curl将以import cv2
img = cv2.imread('xyz.png')
t = img.shape
print(t)
component = 2
img.itemset((0,0,component),int(r[0]))
img.itemset((0,t[1]-1,component),int(r[1]))
img.itemset((t[0]-1,0,component),int(r[2]))
img.itemset((t[0]-1,t[1]-1,component),int(r[3]))
print(img.item(0,0,component))
print(img.item(0,t[1]-1,component))
print(img.item(t[0]-1,0,component))
print(img.item(t[0]-1,t[1]-1,component))
cv2.imwrite('output.png',img)
- 格式对其进行编码,但您需要它urlencoded(与multipart / form-data不同)。删除所有POST代码,并使用http_build_query构建网址
multipart/form-data
和protip,您可以使用parse_str()将URL解码为php数组,此外,您可以使用var_export获取有效的PHP代码以在运行时创建该数组,最后,如上所示,您可以使用http_build_query来将该数组转换回网址that's what i did here.