PHP Curl POST JSON Gửi dữ liệu yêu cầu – PHP

Hầu hết các API được sử dụng để chấp nhận yêu cầu và gửi phản hồi ở định dạng JSON. JSON là định dạng trao đổi dữ liệu phi thực tế. Điều quan trọng là phải tìm hiểu cách gửi dữ liệu yêu cầu JSON bằng lệnh gọi API.

CURL là một cách truy cập từ xa vào điểm cuối API qua mạng. Đoạn mã dưới đây sẽ giúp bạn tiết kiệm thời gian để đăng dữ liệu JSON qua PHP cURL.

Ví dụ: PHP cURL POST bằng cách gửi dữ liệu JSON

Nó chuẩn bị JSON từ một mảng đầu vào và gói nó vào bài đăng cURL PHP.

Nó sử dụng hàm json_encode của PHP để lấy các tham số yêu cầu được mã hóa. Sau đó, nó sử dụng tùy chọn CURLOPT_POSTFIELDS để gói dữ liệu JSON sẽ được đăng.

curl-post-json.php

<?php
// URL of the API that is to be invoked and data POSTed
$url="

// request data that is going to be sent as POST to API
$data = array(
    "animal" => "Lion",
    "type" => "Wild",
    "name" => "Simba",
    "zoo" => array(
        "address1" => "5333 Zoo",
        "city" => "Los Angeles",
        "state" => "CA",
        "country" => "USA",
        "zipcode" => "90027"
    )
);

// encoding the request data as JSON which will be sent in POST
$encodedData = json_encode($data);

// initiate curl with the url to send request
$curl = curl_init($url);

// return CURL response
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

// Send request data using POST method
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");

// Data conent-type is sent as JSON
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type:application/json'
));
curl_setopt($curl, CURLOPT_POST, true);

// Curl POST the JSON data to send the request
curl_setopt($curl, CURLOPT_POSTFIELDS, $encodedData);

// execute the curl POST request and send data
$result = curl_exec($curl);
curl_close($curl);

// if required print the curl response
print $result;
?>

php curl bài json

Đoạn mã trên là một phần của chu trình phản hồi yêu cầu API. Nếu điểm cuối thuộc về một số API của bên thứ ba, thì mã này là đủ để hoàn thành ví dụ này.

Tuy nhiên, nếu API nằm trong hệ thống nội bộ (API tùy chỉnh được tạo cho chính ứng dụng) thì dữ liệu đã đăng phải được xử lý.

Cách lấy dữ liệu JSON trong điểm cuối

Điều này là để xử lý dữ liệu JSON được đăng qua PHP cURL trong điểm cuối API.

Nó đã sử dụng json_decode để chuyển đổi chuỗi JSON được đăng thành một đối tượng JSON. Trong chương trình này, nó đặt “true” để chuyển đổi dữ liệu yêu cầu thành một mảng.

curl-request-data.php

<?php
// use the following code snippet to receive
// JSON POST data
// json_decode converts the JSON string to JSON object
$data = json_decode(file_get_contents('php://input'), true);
print_r($data);
echo $data;
?>

Hàm json_encode cũng cho phép đặt giới hạn lồng cho phép của JSON đầu vào. Giới hạn mặc định là 512.

Nếu dữ liệu JSON đã đăng vượt quá giới hạn lồng nhau, thì điểm cuối API sẽ không thể lấy được dữ liệu bài đăng.

Các phương thức đăng dữ liệu khác lên yêu cầu cURL

Trong hướng dẫn trước, chúng ta đã thấy nhiều ví dụ về việc gửi yêu cầu bằng PHP cURL POST.

Chương trình này đặt kiểu nội dung “application / json” trong CURLOPT_HTTPHEADER. Có các chế độ đăng dữ liệu khác qua PHP cURL.

  1. multiart / form-data – để gửi một mảng dữ liệu đăng đến điểm cuối /
  2. application / x-www-form-urlencoded – để gửi chuỗi dữ liệu biểu mẫu được mã hóa URL.

Lưu ý: PHP http_build_query () có thể xuất ra chuỗi được mã hóa URL của một mảng.
Tải xuống

↑ Quay lại đầu trang

Trả lời