Cách sử dụng cURL Đăng dữ liệu từ tệp

How Use Curl Post Data From File



cURL là một tiện ích dòng lệnh mã nguồn mở và miễn phí được sử dụng để truyền dữ liệu đến hoặc từ một máy chủ từ xa với sự tương tác của người dùng tối thiểu. cURL hoạt động với các giao thức chính như HTTP, FTP, SCP và SFTP.

Nó cho phép người dùng tải lên và tải xuống dữ liệu bằng cách sử dụng các lệnh đơn hoặc tập lệnh bash. Nó cũng cung cấp các tính năng như xác thực người dùng, đường hầm proxy, tiếp tục tải xuống, tải lên dựa trên biểu mẫu, chứng chỉ SSL, v.v. Có thể nói rằng cURL không chỉ là một ứng dụng khách HTTP.







Hướng dẫn này sẽ hướng dẫn bạn một chức năng cURL cho phép người dùng thực hiện các yêu cầu bài đăng HTTP bằng cách sử dụng dữ liệu tệp.



Trước khi chúng ta bắt đầu, hãy để tôi đề cập rằng đây không phải là hướng dẫn dành cho người mới bắt đầu về cURL; bạn cần một mức độ bí quyết trước, đặc biệt là kiến ​​thức về giao thức mạng, yêu cầu HTTP và hơn thế nữa.



Trước khi chúng tôi có thể đi sâu vào việc sử dụng cURL để thực hiện các yêu cầu ĐĂNG, trước tiên hãy để chúng tôi thiết lập.





Cách cài đặt cURL

Trong hầu hết các trường hợp, bạn sẽ tìm thấy cURL được cài đặt trong các bản phân phối Linux lớn theo mặc định. Để xác nhận bạn có cURL, hãy sử dụng lệnh

curl –-help

Nếu bạn gặp lỗi:



-bash: curl:chỉ huykhông tìm thấy

Bạn sẽ cần phải cài đặt nó trước khi tiếp tục.

Sử dụng trình quản lý gói mặc định để hoàn tất cài đặt như được hiển thị trong các lệnh bên dưới:

sudo apt-get cập nhật

sudo apt-get cài đặtXoăn-và

Trước khi thảo luận về cách ĐĂNG dữ liệu từ tệp với cURL, hãy cho phép tôi nói ngắn gọn về yêu cầu ĐĂNG. Như thường lệ, nếu bạn đã quen thuộc với điều này, bạn có thể thoải mái bỏ qua; nếu không, hãy bám lấy.

Yêu cầu ĐĂNG CURL

Yêu cầu bài đăng HTTP là một trong những phương thức yêu cầu HTTP / HTTPS phổ biến nhất được sử dụng để gửi dữ liệu đến máy chủ lưu trữ từ xa để tạo hoặc cập nhật tài nguyên.

Bây giờ :

Xin đừng nhầm lẫn giữa phương pháp với PUT; mặc dù chúng khá giống nhau nhưng chúng có những điểm khác biệt.

Dữ liệu được gửi bằng yêu cầu POST chủ yếu được lưu trữ trong phần thân yêu cầu của yêu cầu HTTP.

Ví dụ: hãy xem xét yêu cầu ĐĂNG dưới đây gửi tên người dùng và mật khẩu cũng như giá trị của chúng.

BÀI ĐĂNG/hạn chế/login.php HTTP/1.1Máy chủ: linuxhint.com Loại nội dung: ứng dụng/x-www-form-urlencodedtên tài khoản= linuxhint&mật khẩu mở khóa= mật khẩu

Để gửi yêu cầu POST ở trên bằng cURL, chúng tôi có thể chỉ định các lệnh như:

Xoăn-NSBÀI ĐĂNG-NS tên tài khoản= linuxhint&mật khẩu mở khóa= mật khẩu https://linuxhint.com/hạn chế/login.php

Trong lệnh trên, chúng tôi đã sử dụng tùy chọn -d để yêu cầu cURL bao gồm các tiêu đề mặc định, là Content-Type: application / x-www-form-urlencoded

Tùy chọn -X chỉ định phương thức yêu cầu HTTP để sử dụng, trong trường hợp này là yêu cầu HTTP POST.

cURL Chỉ định Loại-Nội dung

Trong một số trường hợp, chúng tôi có thể muốn chỉ định [rõ ràng] Loại-Nội dung khi gửi yêu cầu. Thực thể Loại-Nội dung trong tiêu đề chỉ định loại phương tiện của tài nguyên mà chúng tôi đang gửi. Loại phương tiện cũng thường được gọi là Loại MIME.

Nếu bạn muốn tìm hiểu về Các loại MIME, hãy xem xét tài nguyên được cung cấp bên dưới:

https://linkfy.to/IANA-MIME-Types

Để chỉ định Loại-Nội dung trong một yêu cầu cURL, chúng ta có thể sử dụng cờ -H. Ví dụ: hãy để chúng tôi gửi MIME Loại ứng dụng / JSON.

Xoăn-NSBÀI ĐĂNG-NS {tên người dùng: linuxhint, mật khẩu: mật khẩu} -NSLoại nội dung: ứng dụng/json https://linuxhint.com/hạn chế/login.php

Ở trên chỉ định rằng chúng tôi muốn gửi một đối tượng JSON đến URL được cung cấp. Bạn có thể sử dụng điều này để đọc các giá trị từ tệp JSON hoặc gửi nó dưới dạng thô.

Cách đọc dữ liệu từ tệp

Giả sử bạn muốn thực hiện các yêu cầu trong dòng lệnh bằng cách sử dụng cURL, nhưng bạn có dữ liệu để gửi được lưu trữ trong một tệp. Bạn có thể sử dụng Content-Type để chỉ định loại phương tiện và sau đó chuyển đường dẫn tệp chứa dữ liệu. Đối với ví dụ này, tôi sẽ minh họa bằng cách sử dụng một đối tượng JSON.

Tệp JSON (data.json) chứa các giá trị sau:

{
'tên tài khoản':'linuxhint',
'mật khẩu mở khóa':'mật khẩu mở khóa'
}

Để gửi dữ liệu này từ tệp JSON, chúng ta có thể sử dụng -d và sau đó chuyển tên tệp như được hiển thị trong lệnh dưới đây:

Xoăn-NSBÀI ĐĂNG-NSLoại nội dung: ứng dụng/json-NS @data.json https://linuxhint.com/hạn chế/login.php

Bạn cũng có thể sử dụng tùy chọn –data-binary.

Xoăn-NSBÀI ĐĂNG-NSLoại nội dung: ứng dụng/json--data-binary @ /Trang Chủ/người sử dụng/data.json https://linuxhint.com/hạn chế/login.php

Bạn cũng có thể sử dụng tệp văn bản để gửi dữ liệu; tất cả những gì bạn cần chỉ định là Loại-Nội dung dưới dạng văn bản / thuần túy.

Ví dụ: một tệp văn bản (data.txt) chứa các giá trị sau

tên tài khoản= linuxhint&mật khẩu mở khóa= mật khẩu

Sử dụng lệnh cURL, chỉ cần gửi yêu cầu dưới dạng:

Xoăn-NSBÀI ĐĂNG-NSLoại nội dung: văn bản/trơn-NSdata.txt https://linuxhint.com/hạn chế/login.php

Bạn có thể sử dụng các loại tệp khác mà bạn có thể sử dụng như XML, HTML và nhiều loại tệp khác.

Phần kết luận

Trong hướng dẫn này, chúng tôi đã thảo luận về cách thực hiện yêu cầu ĐĂNG và chuyển dữ liệu ở các định dạng khác nhau. Điều cần lưu ý là bên cạnh việc rất mạnh, cURL cũng rất linh hoạt. Nó có thể kết hợp một tập hợp các tùy chọn trong một lệnh duy nhất để tạo ra các yêu cầu mạnh mẽ. Để biết thêm thông tin, tôi khuyên bạn nên sử dụng tài liệu cURL vì nó được viết rất tốt.

https://curl.se/docs/

Cảm ơn bạn đã đọc và chúc bạn vui vẻ với cURL.