PHP POST JSON

Đây là JavaScript trên máy khách, sử dụng lệnh gọi AJAX để yêu cầu tệp PHP từ ví dụ trên

Ví dụ

Sử dụng JSON. parse[] để chuyển đổi kết quả thành một đối tượng JavaScript

const xmlhttp = new XMLHttpRequest[];
xmlhttp. onload = function[] {
  const myObj = JSON. phân tích cú pháp [cái này. responseText];
  tài liệu. getElementById["bản trình diễn"]. bên trongHTML = myObj. tên;
}
xmlhttp. open["NHẬN", "tệp demo_file. php"];
xmlhttp. gửi[];

Tự mình thử »

Mảng PHP

Mảng trong PHP cũng sẽ được chuyển đổi thành JSON khi sử dụng hàm PHP json_encode[]

tập tin PHP

$myArr = array["John", "Mary", "Peter", "Sally"];

$myJSON = json_encode[$myArr];

echo $myJSON;
?>

Hiển thị tệp PHP »

JavaScript ứng dụng khách

Đây là JavaScript trên máy khách, sử dụng lệnh gọi AJAX để yêu cầu tệp PHP từ ví dụ về mảng ở trên

Ví dụ

Sử dụng JSON. parse[] để chuyển đổi kết quả thành một mảng JavaScript

var xmlhttp = new XMLHttpRequest[];
xmlhttp. onload = function[] {
  const myObj = JSON. phân tích cú pháp [cái này. responseText];
  tài liệu. getElementById["bản trình diễn"]. innerHTML = myObj[2];
}
xmlhttp. open["NHẬN", "demo_file_array. php", true];
xmlhttp. gửi[];

Tự mình thử »

Cơ sở dữ liệu PHP

PHP là ngôn ngữ lập trình phía máy chủ và có thể được sử dụng để truy cập cơ sở dữ liệu

Hãy tưởng tượng bạn có một cơ sở dữ liệu trên máy chủ của mình và bạn muốn gửi yêu cầu tới nó từ máy khách nơi bạn yêu cầu 10 hàng đầu tiên trong bảng có tên là "khách hàng"

Trên máy khách, hãy tạo một đối tượng JSON mô tả số hàng bạn muốn trả về

Trước khi bạn gửi yêu cầu đến máy chủ, hãy chuyển đổi đối tượng JSON thành một chuỗi và gửi nó dưới dạng tham số tới url của trang 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 thực tế. Điều quan trọng là 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 đ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 PHP json_encode để 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 để nhóm dữ liệu JSON sẽ được đăng

curl-post-json. php

 "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;
?>

Đ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, 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 ở đ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


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 ghép thì điểm cuối API sẽ không thể lấy dữ liệu của bài đăng

Các chế độ đă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 loại nội dung “application/json” trong CURLOPT_HTTPHEADER. Có các chế độ đăng dữ liệu khác qua PHP cURL

Ký hiệu đối tượng JavaScript là định dạng trao đổi dữ liệu chỉ định quy tắc định dạng cho biểu diễn di động của dữ liệu có cấu trúc. JSON đại diện cho bốn kiểu nguyên thủy [chuỗi, số, booleans và null] và hai kiểu có cấu trúc [đối tượng và mảng]

BÀI ĐĂNG HTTP là gì?

HTTP POST là một trong chín phương thức HTTP tiêu chuẩn. Phương thức POST yêu cầu máy chủ API REST chấp nhận đối tượng được đính kèm trong phần nội dung của thông báo tại điểm cuối được xác định bởi URI yêu cầu. Phương thức POST khác với các yêu cầu HTTP HEAD và GET ở chỗ các yêu cầu HTTP POST có thể thay đổi trạng thái của máy chủ

API REST là gì?

REST là viết tắt của Chuyển trạng thái đại diện và là cách kết nối hai hệ thống máy tính qua Internet. API REST là trình duyệt và ngôn ngữ lập trình bất khả tri. Bạn có thể chạy ứng dụng API REST của mình trong bất kỳ trình duyệt hiện đại nào hoặc tạo ứng dụng API REST trên máy tính để bàn hoặc thiết bị di động bằng bất kỳ ngôn ngữ lập trình nào, bao gồm cả PHP.

API REST xác định một bộ quy tắc để nhà phát triển tạo API.

  1. máy khách-máy chủ. giao diện người dùng máy khách API REST [trang web, máy tính để bàn hoặc ứng dụng di động] phải được tách rời khỏi máy chủ API REST [bộ xử lý yêu cầu và lưu trữ dữ liệu] để mỗi phần có thể được phát triển và mở rộng riêng lẻ
  2. không quốc tịch. Mọi yêu cầu API REST phải được thực thi với tất cả dữ liệu cần thiết mà không cho rằng máy chủ có thể có bất kỳ dữ liệu nào từ các yêu cầu ứng dụng khách API REST trước đó
  3. nhiều lớp. ứng dụng khách API REST không cần biết liệu nó có giao tiếp với máy chủ thực hay trung gian hay không. Máy chủ trung gian [proxy hoặc bộ cân bằng tải] có thể cung cấp cho máy chủ API REST cơ bản khả năng mở rộng và bảo mật bổ sung
  4. Có thể lưu vào bộ nhớ đệm. mỗi phản hồi API REST phải được xác định là có thể lưu vào bộ nhớ cache hay không

PHP REST API POST Ví dụ

Để gửi dữ liệu đến máy chủ API REST bằng PHP, bạn phải tạo một yêu cầu HTTP POST và bao gồm dữ liệu POST trong phần thân của yêu cầu. Bạn cũng cần cung cấp Loại nội dung. tiêu đề yêu cầu application/json và Content-Length. Dưới đây là ví dụ về yêu cầu POST API REST tới điểm cuối ReqBin REST API. Nhấp vào Tạo mã để xem mã PHP cho ví dụ POST API REST này

Yêu cầu POST API REST

POST /echo/post/json HTTP/1.1
Host: reqbin.com
Accept: application/json
Content-Type: application/json
Content-Length: 81

{
  "Id": 78912,
  "Customer": "Jason Sweet",
  "Quantity": 1,
  "Price": 18.00
}


Trong ví dụ yêu cầu POST API REST này, máy chủ thông báo cho ứng dụng khách API REST rằng nó đã trả về JSON bằng cách gửi Loại nội dung. ứng dụng/tiêu đề json trong phản hồi.

Phản hồi của máy chủ đối với yêu cầu POST API REST thử nghiệm của chúng tôi.

Phản hồi của máy chủ API REST

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 19

{"success":"true"}


Loại nội dung chính xác khi đăng JSON lên điểm cuối API REST là gì?

Loại MIME chính thức cho JSON là application/json. Để POST dữ liệu JSON lên máy chủ, bạn phải chỉ định loại dữ liệu trong nội dung của thông báo POST bằng cách sử dụng tiêu đề yêu cầu Loại nội dung thích hợp

Loại nội dung cho JSON

Content-Type: application/json

Tại sao điều quan trọng là phải chỉ định Loại nội dung chính xác khi đăng JSON lên điểm cuối API REST?

Nếu bạn không chuyển đúng tiêu đề Kiểu nội dung cho máy chủ, ứng dụng của bạn có thể không hoạt động. Máy chủ API REST cần tiêu đề Loại nội dung hợp lệ để diễn giải chính xác dữ liệu nội dung thông báo yêu cầu. Điều này đặc biệt quan trọng đối với các khung MVC chuyển đổi hoàn toàn các giá trị từ JSON sang các biến cục bộ

Nếu máy khách PHP REST API của bạn mong đợi dữ liệu JSON từ máy chủ, thì nó cũng phải gửi Chấp nhận. tiêu đề yêu cầu ứng dụng/json. Tiêu đề Chấp nhận cho máy chủ biết rằng máy khách có thể chấp nhận và xử lý dữ liệu JSON. Nếu máy chủ trả về dữ liệu ở định dạng JSON, nó phải thông báo cho máy khách API PHP về loại dữ liệu bằng cách sử dụng Loại nội dung. tiêu đề phản hồi ứng dụng/json

Chấp nhận ví dụ tiêu đề JSON

Accept: application/json


Xem thêm

  • SOAP vs REST
  • Làm cách nào để nhận JSON từ điểm cuối API REST?
  • Kiểm tra phản hồi JSON trực tuyến
  • Ví dụ về tải trọng JSON

Tạo các đoạn mã cho PHP và các ngôn ngữ lập trình khác

Chuyển đổi yêu cầu POST API REST của bạn sang PHP, JavaScript/AJAX, Curl/Bash, Python, Java, C#/. NET bằng cách sử dụng trình tạo mã PHP

PHP REST API POST Ví dụ và bài viết liên quan

Làm cách nào để đăng dữ liệu JSON bằng Curl?

Làm cách nào để chuyển dữ liệu JSON trong yêu cầu POST PHP?

Để nhận chuỗi JSON, chúng ta có thể sử dụng “php. //input” cùng với hàm file_get_contents[] giúp chúng ta nhận dữ liệu JSON dưới dạng file và đọc thành chuỗi. Sau này, chúng ta có thể sử dụng hàm json_decode[] để giải mã chuỗi JSON.

Bạn có thể đăng JSON không?

Đăng JSON lên Máy chủ. Để gửi dữ liệu JSON đến máy chủ, bạn cần cung cấp dữ liệu JSON trong nội dung yêu cầu HTTP POST và chuyển "Kiểu nội dung. application/json" tiêu đề yêu cầu . Tiêu đề yêu cầu Loại nội dung chỉ định loại phương tiện cho tài nguyên trong phần thân.

Làm cách nào để đăng dữ liệu JSON bằng PHP cURL?

Cú pháp truyền dữ liệu JSON trong URL bằng cURL. php $url = "https. // yêu cầu. in/api/users"; $ch = curl_init[]; curl_setopt[$ch, CURLOPT_URL,$url]; curl_setopt[$ch, CURLOPT_RETURNTRANSFER,true]; $resp = curl_exec[$ch]; curl_close[$ch];

Làm cách nào để đăng phản hồi JSON từ API REST trong PHP?

Để đăng JSON lên điểm cuối API REST bằng PHP, bạn phải gửi yêu cầu POST HTTP đến máy chủ API REST và cung cấp dữ liệu JSON trong phần nội dung của thông báo POST PHP< . Bạn cũng cần chỉ định loại dữ liệu trong nội dung của thông báo POST bằng cách sử dụng Content-Type. tiêu đề yêu cầu ứng dụng/json. . You also need to specify the data type in the body of the POST message using the Content-Type: application/json request header.

Chủ Đề