Я уже некоторое время пытаюсь вызвать REST API, но все еще безуспешно.
Я протестировал соединение, свойства и учетные данные с WizTools , поэтому я на 100% уверен, что все данные верны и работают. Только когда я пытаюсь подключиться к API, используя собственный PHP, все идет не так.
Я использую Fiddler для отладки, и все, что я вижу, - это запрос к локальному пути файла с кодом. По какой-то причине фрагмент не вызывает конечную точку REST ... Я хотел бы знать, как это происходит и что я делаю неправильно ...
Код размещен локально (dev.testing.com
).
На первый взгляд, я думаю, что приведенный ниже код верен, поэтому мне интересно, почему я получаю результат GET http://dev.testing.com/talent.php HTTP/1.1
в Fiddler, тогда как я должен получить POST https://api.some_url.com/package/REST/service/criteria?api_key=my_Key HTTP/1.1
..
<?php
// Set all the data
$service_url = "https://api.some_url.com/package/REST/service/criteria?api_key=my_Key";
$service_user = 'iiii_My_Username:text:FO';
$service_pass = 'password';
// Initialize the cURL
$ch = curl_init($service_url);
// Set service authentication
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_USERPWD, "{$service_user}:{$service_pass}");
// Composing the HTTP headers
$body = "<searchCriteriaSorting></searchCriteriaSorting>";
$headers = array();
$headers[] = 'Accept: application/xml';
$headers[] = 'Content-Type: application/xml; charset=UTF-8';
// Set the cURL options
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_ENCODING, '');
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
//WARNING: this would prevent curl from detecting a 'man in the middle' attack
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
// Execute the cURL
$data = curl_exec($ch);
// Print the result
echo $data;
?>