在 PHP 中使用curl 与 REST API 交互时,可以通过以下方式传输 JSON 数据三种常见的 HTTP 请求方法:PUT、POST 和 GET。本文提供了如何有效实现这些数据传输的详细指南。
要使用 JSON 负载执行 PUT 请求,请按照以下步骤操作:
$data = array('username' => 'dog', 'password' => 'tall'); $data_json = json_encode($data); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($data_json))); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); curl_setopt($ch, CURLOPT_POSTFIELDS,$data_json); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch);
对于带有 JSON 数据的 POST 请求,请使用此code:
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS,$data_json); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch);
如 @Dan H 的响应中所述,您可以通过将 JSON 数据作为查询字符串附加到 URL 来将其合并到 GET 请求中:
$url .= '?data=' . urlencode(json_encode($data)); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch);
以上是如何使用 Curl 和 PHP 使用 PUT、POST 和 GET 发送 JSON 数据?的详细内容。更多信息请关注PHP中文网其他相关文章!