Почему запрос PHP cURL POST отображается как GET?

0

Я пытаюсь отправить запрос 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. Изображение 174551

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

  • 0
    вы не можете видеть запрос curl на стороне клиента, то, что вы видите, является запросом к файлу, который вызывает серверный вызов curl
Теги:
curl
post
http
firebug

2 ответа

1

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

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

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

1

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню