我尝试向api发送POST请求以使用PHP cURL创建用户。这是代码示例
<?php
$email="jas@example.com";
$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);
我在firebug net标签中看到了一个GET请求。
它真的是一个帖子请求吗?因为缩进操作(创建新用户)没有发生,而是列出所有用户,因为它是一个GET请求。
答案 0 :(得分:1)
GET
请求只是您对PHP
脚本的请求,然后执行POST
请求。
您无法在开发者控制台中看到使用cURL完成的请求,因为它们是从服务器发送的,而不是客户端。
答案 1 :(得分:1)
错误在于使用firebug调试此请求的逻辑。
您向服务器/页面发送GET请求,create-user.php。反过来,此脚本/服务器向API站点发送POST请求。您的Web客户端(浏览器)以及firebug不会“知道”第二部分,这会发生在您的服务器上。
要查看实际的POST请求,您应该使用不同的工具。例如,将POST请求指向您自己的计算机,然后在服务器日志中确认存在入站POST请求。