Thật khó để quyết định,
hiện nay tôi đang gửi dữ liệu như x-www-form-urlencoded với php lib curl vớix-www-form-urlencoded Vs json HTTP POST
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($this->arguments));
hoặc
curl_setopt($curl, CURLOPT_POSTFIELDS, $this->arguments);
câu hỏi đầu tiên: thứ hai có vẻ là nội dung dài hơn, giải pháp đầu tiên có lẽ tốt hơn?
Đó là thực tế cho các tin nhắn bằng phẳng như:
{
"name": "John",
"token": "2121232145",
"code": "7",
"data": "Hello"
}
Nhưng tôi có thể có cũng là một lĩnh vực dữ liệu mà đại diện cho một đối tượng, trong trường hợp này tôi đã enconding nó, nhưng làm điều đó (url mã hóa một Json) là terribly các thông điệp dài dòng và xấu xí,
Ở phía bên kia tôi đã cố gắng gửi nó như là application/json content-type
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($this->arguments));
nội dung có độ dài lớn hơn cho các tin nhắn nhỏ nhưng w thứ i nhúng json, nó rõ ràng là tốt hơn
Nhưng x-www-form-urlencoded cũng gần với các dữ liệu hình thức tôi cần phải gửi, trừ khi một json được nhúng
Nó sẽ không được thanh lịch có 2 differents phương pháp phân tích cú pháp servlet tùy thuộc vào loại nội dung, vì vậy có tùy chọn khác không?
RÚT GỌN: x-www-form-urlencoded. LONG: nó thực sự phụ thuộc vào loại dữ liệu nào bạn gửi (đối tượng lồng nhau phức tạp hoặc chỉ một vài trường như trong ví dụ). Ngoài ra nó phụ thuộc vào những gì bạn sẽ làm gì với dữ liệu gửi đi, nó sẽ được phân tích và xử lý ngay lập tức hoặc nó sẽ được lưu trữ và sau đó gửi cho người dùng như là (trong định dạng mã hóa json)? – pinepain
@pinepain dữ liệu được gửi đến một máy chủ thủy tinh, được phân tích cú pháp và chèn vào trong cơ sở dữ liệu Cassandra, nó có thể được lồng nhau như thế này {{'data': json_encode ({'text': '2klines ..', 'author' : 'me'}), 'id': '14141', 'từ khóa': json_encode ({[{'thẻ': ['xanh', 'đỏ']}, {'tác giả': ['tôi']} }), ..} ' –
Sử dụng cùng một cách để làm mọi thứ đơn giản hóa rất nhiều. Tại sao không sử dụng JSON ở mọi nơi? Bởi vì PHP xử lý dữ liệu biểu mẫu dưới dạng $ _POST/$ _ GET/$ _ REQUEST biến và dữ liệu JSON với file_get_contents nhàm chán ('php: // input'). Tôi không thích rằng thế giới quay xung quanh PHP. Trong Node.js, nó khá đơn giản và tự nhiên khi sử dụng JSON thay vì dữ liệu biểu mẫu. –