2015-02-02 4 views
0

Я пытаюсь отправить запрос POST на api, чтобы создать пользователя, используя PHP cURL. Вот пример кодаПочему запрос PHP cURL POST отображается как GET?

<?php 
$email="[email protected]"; 
$name = "jas"; 
$data = array(
"user" => array("email"=>$email,"name"=>$name) 
); 
//encoding to json format 
$jsondata= json_encode($data); 

$credentials = "username:pass"; 
$header[] = "Content-Type: application/json"; 
$header[] = "Authorization: Basic " . base64_encode($credentials); 
$connection = curl_init(); 
curl_setopt($connection, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($connection, CURLOPT_HTTPHEADER, $header); 
curl_setopt($connection, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($connection, CURLOPT_HEADER, false); 

//POSTS 
curl_setopt($connection, CURLOPT_POST, 1); 
curl_setopt($connection, CURLOPT_POSTFIELDS, $jsondata); 

curl_setopt($connection, CURLOPT_VERBOSE, 1); 


curl_setopt($connection, CURLOPT_URL, "http://domain.freshdesk.com/contacts.json"); 
$response = curl_exec($connection); 
?> 

Похоже, что не отправляет почту на самом деле, даже если я поставил

curl_setopt($connection, CURLOPT_POST, 1); 
curl_setopt($connection, CURLOPT_POSTFIELDS, $jsondata); 

Я вижу запрос GET в Firebug вкладке сети. GET in firebug

Действительно ли это вопрос? Поскольку операция с отступом (создать нового пользователя) не происходит, вместо этого он перечисляет всех пользователей, так как это запрос GET.

+0

вы не можете видеть запрос на завивание на стороне клиента, то, что вы видите, является запросом к файлу, который поднимает вызов с помощью ловушки – donald123

ответ

1

Это GET запрос - это просто ваш запрос к скрипту PHP, который затем выполняет запрос POST.

Вы не можете видеть запросы, выполненные с помощью cURL в консоли разработчика, поскольку они были отправлены с сервера, а не из клиента.

1

Ошибка в использовании Firebug для отладки этого запроса.

Вы отправляете запрос GET на ваш сервер/страницу, create-user.php. В свою очередь, этот скрипт/сервер отправляет запрос POST на сайт API. Ваш веб-клиент (браузер) и, следовательно, firebug, не «знают» эту вторую часть, которая происходит на вашем сервере.

Чтобы увидеть фактический запрос POST, вы должны использовать различные инструменты. Например, укажите запрос POST на собственную машину, затем подтвердите в журнале сервера, что есть входящий запрос POST.

Смежные вопросы