Curl với tên người dùng và mật khẩu

Có một số cách để tránh điều này, và điều quan trọng, tất nhiên, sau đó là để tránh các giao thức hoặc sơ đồ xác thực gửi thông tin xác thực bằng văn bản thuần túy qua mạng. Dễ nhất có lẽ là đảm bảo bạn sử dụng các phiên bản giao thức được mã hóa. Sử dụng HTTPS thay vì HTTP, sử dụng FTPS thay vì FTP, v.v.

Gần đây, tôi đã nhận được một thử thách mã thời gian để tạo một back-end Ruby on Rails hoạt động như một API RESTful. Ngoài tất cả các yêu cầu kỹ thuật, tôi được cho biết rằng cách duy nhất để người dùng tương tác với API này là bằng curl

Trước thử thách này, tôi chưa bao giờ nhìn thấy hay sử dụng curl. Vì vậy, tôi cần nhanh chóng nghiên cứu và làm quen với curl để đảm bảo rằng API của tôi sẽ hoạt động như mong đợi

CURL là gì?

Đơn giản nhất, curl là một “công cụ dòng lệnh và thư viện để truyền dữ liệu bằng URL” [tài liệu cURL]. cURL là viết tắt của “Thư viện yêu cầu URL khách hàng. ” Nó miễn phí, mã nguồn mở và mã nguồn có thể được tìm thấy trên GitHub/curl

Bạn nên lưu ý rằng cURL với tư cách là một tổ chức thực sự sản xuất hai sản phẩm, curllibcurl. Đầu tiên là công cụ dòng lệnh mà tôi sẽ khám phá chi tiết hơn và libcurl là thư viện phát triển để sử dụng trong hoặc bởi các chương trình khác

Làm cách nào để sử dụng CURL?

Tôi chắc chắn sẽ không thể trình bày mọi phương pháp sử dụng curl vì có khoảng 170 biến thể của lệnh curl. Như đã nói, tôi sẽ cung cấp một số ví dụ hữu ích về cách sử dụng curl từ dòng lệnh

NHẬN yêu cầu

Để thực hiện một yêu cầu GET đơn giản, tất cả những gì bạn cần làm là sử dụng curl + URL của trang web. Ví dụ, curl2 sẽ cho kết quả như sau

Xin lưu ý rằng HTML được trả về từ yêu cầu GET này

Bạn cũng có thể chuyển các mục bổ sung cùng với yêu cầu NHẬN của mình. Ví dụ: nếu một trang web có nội dung được bảo vệ thì curl cho phép bạn chuyển thông tin đăng nhập xác thực. Để làm như vậy sử dụng cú pháp sau

curl4

“TÊN NGƯỜI DÙNG” phải được thay thế bằng tên người dùng thực của bạn trong dấu ngoặc kép. Nếu bạn không muốn đưa mật khẩu của mình vào lịch sử dòng lệnh, bạn chỉ cần sử dụng yêu cầu sau. curl5 và bạn sẽ được nhắc nhập thông tin đăng nhập của mình

ĐĂNG yêu cầu

Trong trường hợp thử thách mã của tôi, điều quan trọng là API RESTful của tôi đã xử lý thông tin được gửi tới nó một cách chính xác. Để ĐĂNG lên trang web/API, hãy sử dụng cú pháp sau

curl6

Cờ curl7 ngụ ý một yêu cầu POST, và do đó bạn có thể bỏ cờ curl8. URL bạn đang đăng đi sau dữ liệu bạn đang gửi

Xóa yêu cầu

Nếu API của bạn tuân theo các quy ước RESTful, thì bạn có thể xóa một phiên bản cụ thể bằng cách gửi yêu cầu DELETE đến đúng tuyến đường/. Tôi. Ví dụ: nếu tôi có API lịch trình và tôi muốn xóa một trong những lịch trình đó, tôi sẽ sử dụng lệnh sau. curl9 trong đó curl0 là ID của một lịch trình hiện có

Thay đổi loại nội dung

Dữ liệu tiêu chuẩn được gửi bằng curl được gửi bằng kiểu dữ liệu curl2. Mục đích chính của loại yêu cầu này là gửi danh sách các cặp tên/giá trị đến máy chủ. Mặc dù đây là cài đặt mặc định của curl nhưng bạn không bị giới hạn trong việc gửi dữ liệu theo cách này. Đây cũng không phải là cách hiệu quả nhất để gửi dữ liệu và bạn sẽ không muốn sử dụng cách mặc định nếu bạn đang gửi một lượng lớn dữ liệu

Các trình duyệt cũng phải hỗ trợ gửi dữ liệu dưới dạng curl4. Điều này yêu cầu một số thông tin bổ sung, chủ yếu là các tiêu đề MIME [Tiện ích mở rộng thư Internet đa năng]

Ngoài ra, bạn có thể chọn gửi thông tin dưới dạng JSON. Để làm như vậy, chúng tôi sẽ sử dụng cờ curl5 để cho biết chúng tôi đang thêm tiêu đề. Một ví dụ về yêu cầu POST được gửi dưới dạng JSON sẽ giống như sau

curl6

curl POST ở trên sẽ tạo một lịch trình mới cho API RESTful tưởng tượng của chúng ta, trong đó tên của lịch trình mới sẽ là. “Tên lịch trình mẫu”

Một số điều thú vị và thú vị bạn có thể làm với curl

  • Nhận thông tin thời tiết.
    Bằng cách chạy lệnh. curl9 và thêm vị trí mong muốn, bạn sẽ nhận được dự báo vị trí mong muốn.

Ví dụ về báo cáo thời tiết được trả lại sau khi yêu cầu cuộn tròn được gửi tới. curl0
  • Kiểm tra trạng thái của trang web.
    Bằng cách chạy lệnh. curl1 bạn sẽ có thể xem mã phản hồi HTTP từ URL được yêu cầu.

Mã phản hồi mẫu được trả về từ yêu cầu HTTP trung bình
  • Tìm địa chỉ IP bên ngoài của bạn.
    Bạn có thể định vị địa chỉ IP bên ngoài của mình bằng cách chạy lệnh.
    ______02
    Địa chỉ IP bên ngoài của bạn khác với địa chỉ IP cục bộ của bạn.

Địa chỉ IP bên ngoài hoặc công cộng được sử dụng trên toàn bộ Internet để định vị các hệ thống và thiết bị máy tính. Địa chỉ IP cục bộ hoặc nội bộ được sử dụng bên trong mạng riêng để định vị các máy tính và thiết bị được kết nối với mạng đó

- Đâu là sự khác biệt giữa địa chỉ IP bên ngoài và địa chỉ IP cục bộ?

Tài nguyên

Nếu bạn quan tâm nhiều hơn đến curl, bạn có thể tìm thêm thông tin bằng cách tham khảo tài liệu về curl

Làm cách nào để sử dụng tên người dùng và mật khẩu trong lệnh curl?

Ví dụ: nếu trang web có nội dung được bảo vệ thì curl cho phép bạn chuyển thông tin đăng nhập xác thực. Để làm như vậy sử dụng cú pháp sau. curl --user "USERNAME. MẬT KHẨU" https. //www. miền. com . “TÊN NGƯỜI DÙNG” phải được thay thế bằng tên người dùng thực của bạn trong dấu ngoặc kép.

Làm cách nào để chuyển mật khẩu được mã hóa trong curl?

Để tự động hóa việc này với cURL, tùy chọn tốt nhất của bạn là sử dụng `curl -n` và a. tệp netrc được lưu trữ trong thư mục chính của người dùng đang thực thi cronjob . Các. netrc là một tệp văn bản gốc có chứa mật khẩu, vì vậy vui lòng đặt các quyền hạn chế nhất mà bạn có thể chấp nhận trên tệp.

Làm cách nào để sử dụng tiêu đề Ủy quyền trong cuộn tròn?

Để gửi yêu cầu POST Curl, bạn cần phải chuyển dữ liệu POST bằng tùy chọn dòng lệnh -d và tiêu đề ủy quyền và mã thông báo mang được chuyển bằng lệnh -H . Trong ví dụ về Curl Request With Bearer Token Authorization Header này, chúng ta gửi một yêu cầu GET tới URL echo ReqBin. . In this Curl Request With Bearer Token Authorization Header example, we send a GET request to the ReqBin echo URL.

Làm cách nào để sử dụng lệnh curl cho yêu cầu GET?

Để thực hiện yêu cầu GET bằng Curl, chạy lệnh curl theo sau là URL mục tiêu . Curl tự động chọn phương thức yêu cầu HTTP GET trừ khi bạn sử dụng tùy chọn dòng lệnh -X, --request hoặc -d. URL mục tiêu được chuyển dưới dạng tùy chọn dòng lệnh đầu tiên.

Chủ Đề