Я пытаюсь отправить запрос POST на api для создания пользователя с использованием PHP cURL. Вот пример кода
<?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 на вкладке netbug net.
Это действительно почтовый запрос? Поскольку операция с отступом (создать нового пользователя) не происходит, вместо этого он перечисляет всех пользователей, поскольку это запрос GET.
Ошибка заключается в логике использования firebug для отладки этого запроса.
Вы отправляете запрос GET на ваш сервер/страницу, create-user.php. В свою очередь, этот скрипт/сервер отправляет запрос POST на сайт API. Ваш веб-клиент (браузер) и, следовательно, firebug, не "знают" эту вторую часть, которая происходит на вашем сервере.
Чтобы увидеть фактический запрос POST, вы должны использовать разные инструменты. Например, укажите запрос POST на собственную машину, затем подтвердите в журнале сервера, что есть входящий запрос POST.
Этот GET
- это просто ваш запрос на PHP
скрипт, который затем выполняет запрос POST
.
Вы не можете видеть запросы, выполненные с помощью cURL в консоли разработчика, потому что они были отправлены с сервера, а не с клиента.