Запрос POST CURL к отправке REST API - PullRequest
1 голос
/ 23 марта 2012

Я уже некоторое время пытаюсь вызвать 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;
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...