У меня проблема при попытке отправить запрос к API, используя PHP. У меня нет контроля над сервером API, и я должен отправлять данные в том формате, который они запрашивают. Их единственная реальная документация - это следующий пример для CLI:
curl -X POST 'http://username:password@domain.tld/foo/bar?param1=false¶m2=0' -d 'Hello World!'
Пытаясь поместить это в PHP, я воспроизвел большую часть этого, я думаю, с помощью кода ниже :
$ch = curl_init();
$username="username";
$password="password";
$data="Hello World!";
$url = "http://" . $username . ":" . $password . "@domain.tld";
$postvars = array( "param1"=>"false", "param2"=>0 );
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$postvars);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,3);
curl_setopt($ch,CURLOPT_TIMEOUT, 20);
$response = curl_exec($ch);
curl_close ($ch);
но я не могу понять, куда идет часть данных? Как мне отправить тело запроса (часть после -d
?
Я не вижу ничего в документации PHP cURL, что указывает, как должно формироваться тело запроса.