PHP curl длинная ссылка с кавычками и пробелами

Необходимо получить доступ к REST API из PHP с помощью CURL. Это ссылка для отдыха:

http://username:password@172.16.59.225:8042/tools/find -d '{"Level":"Study","Expand":false,"Query":{"StudyDate":"20191226-20200324"}}'

как вы видите много "и пустого пространства.

Я попытался подготовить строку вручную, как это:

$url = "http://172.16.59.225/tools/find -d '{"Level":"Study","Expand":false,"Query":{"StudyDate":"20191226-20200324"}}'";

and pass password using: curl_setopt($ch, CURLOPT_USERPWD, "username:password");

Я использовал urlencode() и curl_escape и ничего не работает. В то же время, эта ссылка отлично работает, используя ее с curl в Linux cmd.

Это выполнимо?

Всего 1 ответ


Попробуйте это, --data или -d параметр должен sends the specified data in a POST request to the HTTP server Source

$url = 'http://172.16.59.225/tools/find'
$postdata = '{"Level":"Study","Expand":false,"Query":{"StudyDate":"20191226-20200324"}}'

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERPWD, "username:password");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
$result = curl_exec($ch);
curl_close($ch);
print_r ($result);

Есть идеи?

10000