我决定在实践中学习 curl。现在尝试在 https://www.yoox.com/myoox?newFb=False注册 发送以下详细信息
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36 OPR/60.0.3255.170");
curl_setopt($ch, CURLOPT_HEADER, 0); // пустые заголовки
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// просто отключаем проверку сертификата
curl_setopt($ch, CURLOPT_POST, 1); // использовать данные в post
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // Автоматом идём по редиректам
curl_setopt($ch, CURLOPT_URL, 'https://www.yoox.com/ru/myoox/Register'); // Куда отправляем
curl_setopt($ch, CURLOPT_REFERER, 'https://www.yoox.com/ru/myoox/Register'); // Откуда пришли
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(['SnsId' => 0, 'SnsUserId' => '', 'AccessToken' => '', 'IsSnsConnected' => 'false', 'ReturnUrl' => '', 'Name' => 'Андрей', 'SurName' => 'Киса', 'Email' => 'qwqw@gelloiss.ru', 'Password' => 'qwqwqwqw123', 'Gender' => 'Male', 'Day' => 10, 'Month' => 10, 'Year' => 1999, 'Birth' => '1999-08-10T21:00:00.000Z', 'MobilePhone' => '+7+968+411-19-99', 'Terms[0].IsConsentGranted' => [true, 'true'], 'Terms[0].Name' => 'tos', 'Privacy' => true]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Возвращаем, но не выводим на экран результат
$response = curl_exec($ch);
echo $response;
但结果我看到了一个注册错误。你能建议我做错什么吗?
主要问题是 http_build_query($params) 函数将 'IsSnsConnected' => false 转换为 'IsSnsConnected=0',将数组元素更改为 'IsSnsConnected' => 'false' 并且一切正常。