Công cụ dòng lệnh dành cho nhà phát triển web. Viết yêu cầu HTTP bằng Curl
Chúng ta thường phải tải xuống nhiều tệp khác nhau từ Internet, ví dụ: Các tập tin thực thi chương trình, tập tin script, kho lưu trữ nguồn. Nhưng điều này không phải lúc nào cũng cần được thực hiện thông qua trình duyệt. Trong nhiều tình huống, việc thực hiện mọi hành động thông qua thiết bị đầu cuối sẽ dễ dàng hơn nhiều. Bởi vì bằng cách này bạn có thể tự động hóa quá trình. Mặt khác, quản trị viên web đôi khi phải kiểm tra khả năng truy cập trang web, kiểm tra tiêu đề đã gửi và nhận, v.v.
Để giải quyết các vấn đề như vậy và các vấn đề thuộc phạm vi tương tự, bạn có thể sử dụng tiện ích cuộn tròn. Nó cho phép bạn giải quyết nhiều vấn đề hơn, bao gồm cả việc mô phỏng hành động của người dùng trên trang web. Trong bài viết này, chúng ta sẽ xem xét cách sử dụng Curl, nó là gì và tại sao cần có chương trình này.
Trên thực tế, Curl không chỉ là tiện ích dòng lệnh cho Linux hay Windows. Đây là một tập hợp các thư viện thực hiện khả năng cơ bản làm việc với các trang URL và truyền tệp. Thư viện hỗ trợ làm việc với các giao thức: FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, LDAP, cũng như POP3, IMAP và SMTP. Thật tuyệt vời khi mô phỏng hành động của người dùng trên các trang và các hoạt động khác bằng URL.
Hỗ trợ cho thư viện Curl đã được thêm vào nhiều ngôn ngữ và nền tảng lập trình khác nhau. Tiện ích cuộn tròn là một trình bao bọc độc lập cho thư viện này. Chính tiện ích này mà chúng tôi sẽ tập trung vào trong bài viết này.
lệnh cuộn tròn
Trước khi chuyển sang mô tả cách sử dụng lệnh linux linux, chúng ta hãy xem bản thân tiện ích này và các tùy chọn chính của nó mà chúng ta sẽ cần. Cú pháp của tiện ích rất đơn giản:
liên kết tùy chọn $curl
Bây giờ hãy xem xét các tùy chọn chính:
- -# - hiển thị thanh tiến trình đơn giản trong quá trình tải;
- -0 - sử dụng giao thức http 1.0;
- -1 - sử dụng giao thức mã hóa tlsv1;
- -2 - sử dụng sslv2;
- -3 - sử dụng sslv3;
- -4 - sử dụng ipv4;
- -6 - sử dụng ipv6;
- -MỘT- chỉ định USER_AGENT của bạn;
- -b- lưu Cookie vào một tệp;
- -c- gửi Cookie đến máy chủ từ một tệp;
- -C- tiếp tục tải xuống tệp từ điểm ngắt hoặc phần bù được chỉ định;
- -m- thời gian chờ đợi tối đa để nhận phản hồi từ máy chủ;
- -d- gửi dữ liệu bằng phương thức POST;
- -D- lưu các tiêu đề được máy chủ trả về vào một tệp;
- -e- đặt trường Người giới thiệu-uri, cho biết người dùng đến từ trang nào;
- -E- sử dụng chứng chỉ SSL bên ngoài;
- -f- không hiển thị thông báo lỗi;
- -F- gửi dữ liệu dưới dạng biểu mẫu;
- -G- nếu tùy chọn này được bật thì tất cả dữ liệu được chỉ định trong tùy chọn -d sẽ được truyền bằng phương thức GET;
- -H- chuyển tiêu đề đến máy chủ;
- -TÔI- chỉ nhận tiêu đề HTTP và bỏ qua toàn bộ nội dung trang;
- -j- đọc và gửi cookie từ một tập tin;
- -J- xóa tiêu đề khỏi yêu cầu;
- -L- chấp nhận và xử lý chuyển hướng;
- -S - số tiền tối đa chuyển hướng sử dụng Vị trí;
- -o- xuất nội dung trang vào một tập tin;
- -O- lưu nội dung vào một tệp có tên của trang hoặc tệp trên máy chủ;
- -P- sử dụng proxy;
- --proto- chỉ ra giao thức được sử dụng;
- -R- lưu thời gian sửa đổi cuối cùng của một tập tin từ xa;
- -S- hiển thị tối thiểu thông tin về lỗi;
- -S- hiển thị thông báo lỗi;
- -T- tải tập tin lên máy chủ;
- -v- đầu ra chi tiết nhất;
- -y- tốc độ tải xuống tối thiểu;
- -Y - tốc độ tối đa tải xuống;
- -z- chỉ tải xuống tệp nếu nó được sửa đổi muộn hơn thời gian quy định;
- -V- hiển thị phiên bản.
Đây hoàn toàn không phải là tất cả các tùy chọn dành cho Curl Linux, nhưng nó liệt kê những điều cơ bản mà bạn sẽ cần sử dụng.
Làm thế nào để sử dụng cuộn tròn?
Chúng ta đã trình bày mọi thứ liên quan đến lý thuyết làm việc với tiện ích cuộn tròn, bây giờ là lúc chuyển sang thực hành và xem các ví dụ về lệnh cuộn tròn.
Nhiệm vụ phổ biến nhất là đây. Việc tải tập tin rất đơn giản. Để thực hiện việc này, chỉ cần truyền tên file hoặc trang html cho tiện ích trong phần tham số:
cuộn tròn https://raw.githubusercontent.com/curl/curl/master/README.md
Nhưng ở đây có một điều ngạc nhiên đang chờ bạn: toàn bộ nội dung của tập tin sẽ được gửi tới đầu ra tiêu chuẩn. Để ghi nó vào bất kỳ tập tin nào, hãy sử dụng:
cuộn tròn -o readme.txt https://raw.githubusercontent.com/curl/curl/master/README.md
Và nếu bạn muốn file kết quả được đặt tên giống với file trên máy chủ, hãy sử dụng tùy chọn -O:
cuộn tròn -O https://raw.githubusercontent.com/curl/curl/master/README.md
cuộn tròn -# -C - -O https://cdn.kernel.org/pub/linux/kernel/v4.x/testing/linux-4.11-rc7.tar.xz
Nếu cần, bạn có thể tải xuống một số tệp bằng một lệnh:
cuộn tròn -O https://raw.githubusercontent.com/curl/curl/master/README.md -O https://raw.githubusercontent.com/curl/curl/master/README
Một điều khác có thể hữu ích cho quản trị viên là chỉ tải xuống tệp nếu nó đã được sửa đổi:
Curl -z 21-12-17 https://raw.githubusercontent.com/curl/curl/master/README.md -O https://raw.githubusercontent.com/curl/curl/master/README
Giới hạn tốc độ
Bạn có thể giới hạn tốc độ tải xuống ở mức giới hạn được yêu cầu để không làm mạng bị quá tải bằng tùy chọn -Y:
cuộn tròn --limit-rate 50K -O https://cdn.kernel.org/pub/linux/kernel/v4.x/testing/linux-4.11-rc7.tar.xz
Ở đây bạn cần chỉ định số kilobyte mỗi giây có thể được tải xuống. Bạn cũng có thể ngắt kết nối nếu tốc độ không đủ, sử dụng tùy chọn -Y để thực hiện việc này:
cuộn tròn -Y 100 -O https://raw.githubusercontent.com/curl/curl/master/README.md
Truyền tập tin
cuộn tròn -T login.txt ftp://speedtest.tele2.net/upload/
Hoặc hãy kiểm tra xem tệp có được gửi qua HTTP hay không; có một dịch vụ đặc biệt cho việc này:
cuộn tròn -T ~/login.txt http://posttestserver.com/post.php
Trong phản hồi, tiện ích sẽ cho bạn biết nơi bạn có thể tìm thấy tệp đã tải xuống.
Gửi dữ liệu POST
Bạn có thể gửi không chỉ các tệp mà còn bất kỳ dữ liệu nào bằng phương thức POST. Hãy để tôi nhắc bạn rằng phương pháp này được sử dụng để gửi dữ liệu ở nhiều dạng khác nhau. Để gửi yêu cầu như vậy, hãy sử dụng tùy chọn -d. Để thử nghiệm, chúng tôi sẽ sử dụng cùng một dịch vụ:
Curl -d "field1=val&fileld2=val1"http://posttestserver.com/post.php
Nếu bạn không hài lòng với tùy chọn gửi này, bạn có thể giả vờ gửi biểu mẫu. Có một tùy chọn cho việc này -F:
cuộn tròn -F "password=@pass;type=text/plain" http://posttestserver.com/post.php
Ở đây chúng tôi chuyển trường mật khẩu có dạng dưới dạng văn bản thuần túy, giống như cách bạn có thể chuyển một số tham số.
Gửi và nhận cookie
Cookie được các trang web sử dụng để lưu trữ một số thông tin nhất định từ phía người dùng. Điều này có thể cần thiết, ví dụ, để xác thực. Bạn có thể gửi và nhận Cookie bằng cách sử dụng Curl. Để lưu Cookie đã nhận vào một tệp, hãy sử dụng tùy chọn -c:
cuộn tròn -c cookie.txt http://posttestserver.com/post.php
Sau đó, bạn có thể gửi lại cookie cuộn tròn:
cuộn tròn -b cookie.txt http://posttestserver.com/post.php
Truyền tải và phân tích tiêu đề
Không phải lúc nào chúng ta cũng cần nội dung của trang. Đôi khi chỉ có tiêu đề mới có thể thú vị. Để chỉ hiển thị chúng, có tùy chọn -I:
cuộn tròn -I https://site
Và tùy chọn -H cho phép bạn gửi một số hoặc nhiều hơn đến máy chủ, ví dụ: bạn có thể chuyển tiêu đề If-Modified-Since để trang chỉ được trả về nếu nó đã được sửa đổi:
xác thực cuộn tròn
Nếu máy chủ yêu cầu một trong các loại xác thực phổ biến, chẳng hạn như HTTP Basic hoặc FTP, thì Curl có thể xử lý tác vụ này rất dễ dàng. Để chỉ định chi tiết xác thực, chỉ cần chỉ định chúng được phân tách bằng dấu hai chấm trong tùy chọn -u:
cuộn tròn -u ftpuser:ftppass -T - ftp://ftp.testserver.com/myfile_1.txt
Việc xác thực trên máy chủ HTTP sẽ được thực hiện theo cách tương tự.
Sử dụng proxy
Nếu bạn cần sử dụng máy chủ proxy để tải tập tin xuống thì việc đó cũng rất đơn giản. Chỉ cần chỉ định địa chỉ máy chủ proxy trong tùy chọn -x là đủ:
Curl -x proxysever.test.com:3128 http://google.co.in
kết luận
Trong bài viết này, chúng ta đã xem xét cách sử dụng Curl, tại sao cần có tiện ích này và các khả năng chính của nó. Mặc dù có sự giống nhau nhưng chúng rất khác nhau. Lệnh linux linux được thiết kế nhiều hơn để phân tích và mô phỏng các hành động khác nhau trên máy chủ, trong khi wget phù hợp hơn để tải xuống tệp và thu thập dữ liệu trang web.
URL c rất công cụ hữu ích dòng lệnh để truyền dữ liệu từ hoặc đến máy chủ. Curl hỗ trợ nhiều giao thức khác nhau như FILE, HTTP, HTTPS, IMAP, IMAPS, LDAP, DICT, LDAPS, TELNET, FTPS, GOPHER, RTMP, RTSP, SCP, SFTP, POP3, POP3S, SMB, SMBS, SMTP, SMTPS và TFTP .
cURL có thể được sử dụng theo nhiều cách khác nhau và thú vị. Với công cụ này, bạn có thể tải xuống, tải lên và quản lý tệp, kiểm tra địa chỉ email hoặc thậm chí cập nhật trạng thái của mình trên một số trang web mạng xã hội hoặc kiểm tra thời tiết bên ngoài. Trong bài viết này, chúng ta sẽ xem xét năm cách sử dụng cơ bản và hữu ích nhất của công cụ cURL trên bất kỳ ứng dụng .
1. Kiểm tra URL
Một trong những cách sử dụng cURL phổ biến và đơn giản nhất là in chính lệnh theo sau là URL bạn muốn kiểm tra
Cuộn tròn https://domain.ru
Lệnh này sẽ hiển thị nội dung của URL trên thiết bị đầu cuối của bạn
2. Lưu đầu ra URL vào một tệp
Curl -o website https://domain.ru % Tổng % đã nhận % Xferd Tốc độ trung bình Thời gian Thời gian Tải lên Dload hiện tại Tổng chi tiêu còn lại Tốc độ 100 41793 0 41793 0 0 275k 0 --:--:-- - -:-- :-- --:--:-- 2,9 triệu
Trong ví dụ này, kết quả đầu ra sẽ được lưu vào một tệp có tên 'trang web' trong thư mục làm việc hiện tại.
3. Tải tệp lên bằng Curl
Bạn có thể tải xuống tệp bằng Curl bằng cách thêm tùy chọn -o vào lệnh. Nó được sử dụng để lưu các tập tin trên máy chủ cục bộ có cùng tên như trên máy chủ từ xa
Curl -O https://domain.ru/file.zip
Trong ví dụ này, kho lưu trữ 'file.zip' sẽ được tải xuống thư mục làm việc hiện tại.
Bạn cũng có thể tải tệp có tên khác lên bằng cách thêm tùy chọn -o vào cURL.
Curl -o archive.zip https://domain.ru/file.zip
Vì vậy, kho lưu trữ 'file.zip' sẽ được tải xuống và lưu dưới dạng 'Archive.zip'.
cURL cũng có thể được sử dụng để tải xuống nhiều tệp cùng một lúc, như trong ví dụ bên dưới
Curl -O https://domain.ru/file.zip -O https://domain.com/file2.zip
Curl cũng có thể được sử dụng để tải tệp lên một cách an toàn qua SSH bằng lệnh sau
Curl -u người dùng sftp://server.domain.ru/path/to/file
Xin lưu ý rằng bạn phải sử dụng đường dẫn đầy đủ đến tệp bạn muốn tải xuống
4. Lấy thông tin từ HTTP header của website
Bạn có thể dễ dàng lấy thông tin tiêu đề HTTP từ bất kỳ trang web nào bằng cách thêm tùy chọn -I ('i') vào cURL.
Curl -I http://domain.ru HTTP/1.1 200 OK Ngày: Chủ Nhật, ngày 16 tháng 10 năm 2016 23:37:15 GMT Máy chủ: Apache/2.4.23 (Unix) X-Powered-By: Kết nối PHP/5.6.24 : đóng Loại nội dung: văn bản/html; bộ ký tự=UTF-8
5. Truy cập máy chủ FTP
Để truy cập máy chủ FTP từ sử dụng Curl, bạn cần sử dụng lệnh sau
Curl ftp://ftp.domain.ru --tên người dùng: mật khẩu
Curl sẽ kết nối với máy chủ FTP và liệt kê tất cả các file và thư mục trong thư mục chính của người dùng
Bạn có thể tải xuống tệp bằng FTP
Curl ftp://ftp.domain.ru/file.zip --tên người dùng: mật khẩu
và tải tập tin lên máy chủ FTP
Curl -T file.zip ftp://ftp.domain.ru/ --tên người dùng: mật khẩu
Bạn có thể kiểm tra trang Curl theo cách thủ công để xem mọi thứ Tùy chọn có sẵn cURL và chức năng của nó
người đàn ông uốn cong
Tái bút. Nếu bạn thích bài đăng này, hãy chia sẻ nó với bạn bè của bạn trên trong mạng xã hội bằng cách sử dụng các nút bên dưới hoặc đơn giản là để lại nhận xét. Cảm ơn.
uốn cong (1)TÊN
cuộn tròn - chuyển một URLTÓM TẮT
XoănSỰ MIÊU TẢ
Xoăn là một công cụ để truyền dữ liệu từ hoặc đến máy chủ, sử dụng một trong các giao thức được hỗ trợ (HTTP, HTTPS, FTP, FTPS, TFTP, DICT, TELNET, LDAP hoặc FILE). Lệnh được thiết kế để hoạt động mà không cần sự tương tác của người dùng.Curl cung cấp rất nhiều thủ thuật hữu ích như hỗ trợ proxy, xác thực người dùng, tải lên ftp, bài đăng HTTP, kết nối SSL (https:), cookie, tiếp tục truyền tệp và hơn thế nữa. Như bạn sẽ thấy bên dưới, số lượng tính năng sẽ khiến đầu óc bạn quay cuồng!
Curl được cung cấp bởi libcurl cho tất cả các tính năng liên quan đến chuyển giao. Xem (3) để biết chi tiết.
URL
Cú pháp URL phụ thuộc vào giao thức. Bạn sẽ tìm thấy mô tả chi tiết trong RFC 3986.Bạn có thể chỉ định nhiều URL hoặc các phần của URL bằng cách viết các bộ phần trong dấu ngoặc nhọn như sau:
hoặc bạn có thể nhận được chuỗi các chuỗi chữ và số bằng cách sử dụng như trong:
Hiện tại, tính năng lồng các chuỗi không được hỗ trợ nhưng bạn có thể sử dụng nhiều chuỗi cạnh nhau:
Bạn có thể chỉ định số lượng URL bất kỳ trên dòng lệnh. Chúng sẽ được tìm nạp một cách tuần tự theo thứ tự đã chỉ định.
Vì Curl 7.15.1 bạn cũng có thể chỉ định bộ đếm bước cho các phạm vi để bạn có thể nhận được mọi số hoặc chữ cái thứ N:
Nếu bạn chỉ định URL không có tiền tố Protocol://, Curl sẽ cố gắng đoán xem bạn muốn giao thức nào. Sau đó, nó sẽ mặc định là HTTP nhưng thử các giao thức khác dựa trên tiền tố tên máy chủ thường được sử dụng. Ví dụ: đối với tên máy chủ bắt đầu bằng "ftp." Curl sẽ cho rằng bạn muốn nói FTP.
MÁY ĐO TIẾN ĐỘ
Curl thường hiển thị đồng hồ đo tiến độ trong quá trình hoạt động, cho biết lượng dữ liệu được truyền, tốc độ truyền và thời gian ước tính còn lại, v.v.Tuy nhiên, vì Curl hiển thị dữ liệu đến thiết bị đầu cuối theo mặc định, nên nếu bạn gọi Curl để thực hiện một thao tác và nó chuẩn bị ghi dữ liệu vào thiết bị đầu cuối thì nó sẽ vô hiệu hóađồng hồ đo tiến độ nếu không nó sẽ làm rối đồng hồ đo tiến độ trộn đầu ra và dữ liệu phản hồi.
Nếu bạn muốn đo tiến trình cho các yêu cầu HTTP POST hoặc PUT, bạn cần chuyển hướng đầu ra phản hồi sang một tệp, sử dụng chuyển hướng shell (>), -o hoặc tương tự.
Trường hợp tải lên FTP không giống như vậy vì thao tác đó không đưa ra bất kỳ dữ liệu phản hồi nào tới thiết bị đầu cuối.
Nếu bạn thích "thanh" tiến trình thay vì đồng hồ đo thông thường, -# là bạn của bạn.
TÙY CHỌN
-a/--append (FTP) Khi được sử dụng trong quá trình tải lên FTP, điều này sẽ yêu cầu Curl nối thêm vào tệp đích thay vì ghi đè lên nó. Nếu tập tin không tồn tại, nó sẽ được tạo.Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ tắt chế độ chắp thêm lần nữa. -A/--tác nhân người dùng
Nếu tùy chọn này được đặt nhiều lần thì tùy chọn cuối cùng sẽ là tùy chọn được sử dụng. --anyauth (HTTP) Yêu cầu Curl tự tìm ra phương thức xác thực và sử dụng phương thức an toàn nhất mà trang web từ xa tuyên bố rằng nó hỗ trợ. Điều này được thực hiện bằng cách trước tiên thực hiện một yêu cầu và kiểm tra các tiêu đề phản hồi, do đó tạo ra một chuyến đi khứ hồi mạng bổ sung. Điều này được sử dụng thay vì đặt một phương thức xác thực cụ thể mà bạn có thể thực hiện với. --nền tảng, --tiêu, --ntlm, Và --thương lượng.
Lưu ý rằng việc sử dụng --anyauth không được khuyến khích nếu bạn tải lên từ stdin, vì nó có thể yêu cầu gửi dữ liệu hai lần và sau đó máy khách phải có khả năng tua lại. Nếu có nhu cầu khi tải lên từ stdin, thao tác tải lên sẽ thất bại.
Nếu tùy chọn này được sử dụng nhiều lần, những lần xuất hiện sau đây sẽ không có gì khác biệt. -b/--cookie
Nếu không có chữ cái "=" nào được sử dụng trong dòng thì nó sẽ được coi là tên tệp để sử dụng để đọc các dòng cookie được lưu trữ trước đó. Những dòng này sẽ được sử dụng trong phiên này nếu chúng khớp. Việc sử dụng phương pháp này cũng sẽ kích hoạt "trình phân tích cú pháp cookie", điều này cũng sẽ giúp ghi lại các cookie đến, điều này có thể hữu ích nếu bạn đang sử dụng phương pháp này kết hợp với -L/--vị trí lựa chọn. Định dạng tệp của tệp để đọc cookie phải là tiêu đề HTTP đơn giản hoặc định dạng tệp cookie Netscape/Mozilla.
GHI CHÚ rằng tập tin được chỉ định với -b/--cookie chỉ được sử dụng làm đầu vào. Không có cookie sẽ được lưu trữ trong tập tin. Để lưu trữ cookie, hãy sử dụng -c/--cookie-jar tùy chọn hoặc thậm chí bạn có thể lưu tiêu đề HTTP vào một tệp bằng cách sử dụng -D/--dump-tiêu đề!
Nếu tùy chọn này được đặt nhiều lần thì tùy chọn cuối cùng sẽ là tùy chọn được sử dụng. -B/--use-ascii Bật truyền ASCII khi sử dụng FTP hoặc LDAP. Đối với FTP, điều này cũng có thể được thực thi bằng cách sử dụng URL kết thúc bằng ";type=A". Tùy chọn này khiến dữ liệu được gửi tới thiết bị xuất chuẩn ở chế độ văn bản cho hệ thống win32.
Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ vô hiệu hóa việc sử dụng ASCII. --basic (HTTP) Yêu cầu Curl sử dụng xác thực HTTP Basic. Đây là tùy chọn mặc định và tùy chọn này thường vô nghĩa, trừ khi bạn sử dụng nó để ghi đè tùy chọn đã đặt trước đó đặt phương thức xác thực khác (chẳng hạn như --ntlm, --tiêu Và --thương lượng).
Nếu tùy chọn này được sử dụng nhiều lần, những lần xuất hiện sau đây sẽ không có gì khác biệt. --mật mã (SSL) Chỉ định mật mã nào sẽ sử dụng trong kết nối. Danh sách mật mã phải sử dụng mật mã hợp lệ. Đọc chi tiết danh sách mật mã SSL trên URL này: http://www.openssl.org/docs/apps/ciphers.html
Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ ghi đè lên các tùy chọn khác. --compression (HTTP) Yêu cầu phản hồi nén bằng một trong các thuật toán mà libcurl hỗ trợ và trả về tài liệu không nén. Nếu tùy chọn này được sử dụng và máy chủ gửi mã hóa không được hỗ trợ, Curl sẽ báo lỗi.
Nếu tùy chọn này được sử dụng nhiều lần, mỗi lần xuất hiện sẽ bật/tắt tùy chọn này. --kết nối-hết thời gian
Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. -c/--cookie-jar
GHI CHÚ Nếu không thể tạo hoặc ghi vào lọ cookie, toàn bộ thao tác cuộn tròn sẽ không thất bại hoặc thậm chí báo cáo lỗi một cách rõ ràng. Sử dụng -v sẽ hiển thị cảnh báo, nhưng đó là phản hồi rõ ràng duy nhất bạn nhận được về tình huống có thể gây chết người này.
Nếu tùy chọn này được sử dụng nhiều lần, tên tệp được chỉ định cuối cùng sẽ được sử dụng. -C/--tiếp tục tại
Sử dụng "-C -" để yêu cầu cuộn tròn tự động tìm ra vị trí/cách tiếp tục chuyển. Sau đó, nó sử dụng các tệp đầu ra/đầu vào đã cho để tìm ra điều đó.
Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. --create-dirs Khi được sử dụng cùng với tùy chọn -o, Curl sẽ tạo hệ thống phân cấp thư mục cục bộ cần thiết nếu cần. Tùy chọn này tạo các thư mục được đề cập bằng tùy chọn -o, không có gì khác. Nếu tên tệp -o không sử dụng thư mục hoặc nếu các thư mục mà nó đề cập đã tồn tại thì sẽ không có thư mục nào được tạo.
Để tạo thư mục từ xa khi sử dụng FTP, hãy thử --ftp-tạo-dirs. --crlf (FTP) Chuyển đổi LF sang CRLF khi tải lên. Hữu ích cho MVS (OS/390).
Nếu tùy chọn này được sử dụng nhiều lần, những lần xuất hiện sau đây sẽ không có gì khác biệt. -d/--dữ liệu (HTTP) Gửi dữ liệu được chỉ định trong yêu cầu POST tới máy chủ HTTP, theo cách có thể mô phỏng như thể người dùng đã điền vào một biểu mẫu HTML và nhấn nút gửi. Lưu ý rằng dữ liệu được gửi chính xác như được chỉ định mà không cần xử lý thêm (với tất cả các dòng mới bị cắt). Dữ liệu dự kiến sẽ được "mã hóa url". Điều này sẽ khiến Curl truyền dữ liệu đến máy chủ bằng cách sử dụng ứng dụng loại nội dung/x-www-form-urlencoded. So với -F/-dạng. Nếu tùy chọn này được sử dụng nhiều lần trên cùng một dòng lệnh, các phần dữ liệu được chỉ định sẽ được hợp nhất với nhau bằng ký tự & phân cách. Việc sử dụng "-d name=daniel -d Skill=lousy" sẽ tạo ra một đoạn bài trông giống như "Do đó name=daniel&skill=lousy".
Nếu bạn bắt đầu dữ liệu bằng chữ cái @, phần còn lại phải là tên tệp để đọc dữ liệu từ đó hoặc - nếu bạn muốn cuộn tròn để đọc dữ liệu từ stdin. Nội dung của tệp phải được mã hóa url. Nhiều tập tin cũng có thể được chỉ định. Do đó, việc đăng dữ liệu từ một tệp có tên "foobar" sẽ được thực hiện bằng --dữ liệu@foobar".
Để đăng dữ liệu hoàn toàn nhị phân, thay vào đó bạn nên sử dụng --data-nhị phân lựa chọn.
-d/--dữ liệu cũng giống như --data-ascii.
Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn sau tùy chọn đầu tiên sẽ nối thêm dữ liệu. --data-ascii (HTTP) Đây là bí danh của -d/--dữ liệu lựa chọn.
Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn sau tùy chọn đầu tiên sẽ nối thêm dữ liệu. --data-nhị phân (HTTP) Điều này đăng dữ liệu theo cách tương tự như --data-ascii có, mặc dù khi sử dụng tùy chọn này, toàn bộ bối cảnh của dữ liệu đã đăng vẫn được giữ nguyên. Nếu bạn muốn đăng một tệp nhị phân mà không có tính năng dải dòng mới của --data-ascii tùy chọn, đây là dành cho bạn.
Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn sau tùy chọn đầu tiên sẽ nối thêm dữ liệu. --digest (HTTP) Cho phép xác thực HTTP Digest. Đây là một xác thực ngăn mật khẩu được gửi qua dây ở dạng văn bản rõ ràng. Sử dụng cái này kết hợp với cái bình thường -u/--người dùng tùy chọn để đặt tên người dùng và mật khẩu. Xem thêm --ntlm, --thương lượng Và --anyauth cho các lựa chọn liên quan.
Nếu tùy chọn này được sử dụng nhiều lần, những lần xuất hiện sau đây sẽ không có gì khác biệt. --disable-eprt (FTP) Yêu cầu Curl tắt việc sử dụng các lệnh EPRT và LPRT khi thực hiện truyền FTP đang hoạt động. Thông thường, Curl sẽ luôn thử sử dụng EPRT trước, sau đó là LPRT trước khi sử dụng PORT, nhưng với tùy chọn này, nó sẽ sử dụng PORT ngay lập tức. EPRT và LPRT là các phần mở rộng của giao thức FTP gốc, có thể không hoạt động trên tất cả các máy chủ nhưng kích hoạt nhiều chức năng hơn theo cách tốt hơn lệnh PORT truyền thống.
Nếu tùy chọn này được sử dụng nhiều lần, mỗi lần xuất hiện sẽ bật/tắt tùy chọn này. --disable-epsv (FTP) Yêu cầu Curl tắt việc sử dụng lệnh EPSV khi thực hiện truyền FTP thụ động. Thông thường, Curl sẽ luôn thử sử dụng EPSV trước PASV, nhưng với tùy chọn này, nó sẽ không thử sử dụng EPSV.
Nếu tùy chọn này được sử dụng nhiều lần, mỗi lần xuất hiện sẽ bật/tắt tùy chọn này. -D/--dump-tiêu đề
Tùy chọn này rất hữu ích khi bạn muốn lưu trữ các tiêu đề mà trang HTTP gửi cho bạn. Sau đó, cookie từ các tiêu đề có thể được đọc trong lệnh gọi cuộn thứ hai bằng cách sử dụng -b/--cookie lựa chọn! Các -c/--cookie-jar Tuy nhiên, tùy chọn này là cách tốt hơn để lưu trữ cookie.
Khi được sử dụng trên FTP, các dòng phản hồi của máy chủ ftp được coi là "tiêu đề" và do đó được lưu ở đó.
Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. -e/--người giới thiệu
Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. --động cơ
Nếu tùy chọn này được sử dụng nhiều lần, mỗi lần xuất hiện sẽ bật/tắt tùy chọn này. --egd-file
(HTTPS) Yêu cầu Curl sử dụng tệp chứng chỉ được chỉ định khi nhận tệp có HTTPS. Chứng chỉ phải ở định dạng PEM. Nếu mật khẩu tùy chọn không được chỉ định, nó sẽ được truy vấn trên thiết bị đầu cuối. Lưu ý rằng chứng chỉ này là khóa riêng và chứng chỉ riêng được nối!
(SSL) Cho biết loại chứng chỉ mà chứng chỉ được cung cấp thuộc loại nào. PEM, DER và ENG là các loại được công nhận.
(HTTPS) Yêu cầu Curl sử dụng tệp chứng chỉ được chỉ định để xác minh ngang hàng. Tệp có thể chứa nhiều chứng chỉ CA. (Các) chứng chỉ phải ở định dạng PEM.
Phiên bản Windows của Curl sẽ tự động tìm kiếm tệp CA certs có tên "curl-ca-bundle.crt", trong cùng thư mục với Curl.exe hoặc trong Thư mục làm việc hiện tại hoặc trong bất kỳ thư mục nào dọc theo PATH của bạn.
Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. --capath
Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. -f/--fail (HTTP) Lỗi âm thầm (không có kết quả nào cả) do lỗi máy chủ. Điều này chủ yếu được thực hiện như thế này để kích hoạt tốt hơn các tập lệnh, v.v. để xử lý tốt hơn các lần thử thất bại. Trong các trường hợp thông thường khi máy chủ HTTP không gửi được tài liệu, nó sẽ trả về một tài liệu HTML nêu rõ điều đó (thường cũng mô tả lý do và hơn thế nữa). Cờ này sẽ ngăn không cho Curl xuất ra lỗi đó và trả về lỗi 22.
Nếu tùy chọn này được sử dụng hai lần, lần thứ hai sẽ vô hiệu hóa lỗi im lặng. --ftp-account (FTP) Khi máy chủ FTP yêu cầu "dữ liệu tài khoản" sau khi tên người dùng và mật khẩu đã được cung cấp, dữ liệu này sẽ được gửi đi bằng lệnh ACCT. (Đã thêm vào 7.13.0)
Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ ghi đè lần sử dụng trước đó. --ftp-create-dirs (FTP) Khi một URL/thao tác FTP sử dụng đường dẫn hiện không tồn tại trên máy chủ, hành vi tiêu chuẩn của Curl sẽ không thành công. Khi sử dụng tùy chọn này, thay vào đó, Curl sẽ cố gắng tạo các thư mục bị thiếu. .
Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa việc tạo thư mục. --ftp-method (FTP) Kiểm soát phương thức nào nên sử dụng để truy cập tệp trên máy chủ FTP(S). Đối số phương thức phải là một trong các lựa chọn thay thế sau: multicwdcurl thực hiện một thao tác CWD duy nhất cho từng phần đường dẫn trong URL đã cho. Đối với hệ thống phân cấp sâu, điều này có nghĩa là rất nhiều lệnh. Đây là cách RFC1738 nói rằng nó nên được thực hiện. Đây là hành vi mặc định nhưng chậm nhất. nocwdcurl hoàn toàn không có CWD. Curl sẽ thực hiện SIZE, RETR, STOR, v.v. và cung cấp đường dẫn đầy đủ đến máy chủ cho tất cả các lệnh này. Đây là hành vi nhanh nhất. singlecwd Curl thực hiện một CWD với thư mục đích đầy đủ và sau đó hoạt động trên tệp "bình thường" (như trong trường hợp multicwd). Điều này có phần tuân thủ các tiêu chuẩn hơn so với "nocwd" nhưng không có hình phạt hoàn toàn như "multicwd". --ftp-pasv (FTP) Sử dụng PASV khi truyền. PASV là hành vi mặc định nội bộ, nhưng việc sử dụng tùy chọn này có thể được sử dụng để ghi đè tùy chọn --ftp-port trước đó. (Đã thêm vào 7.11.0)
Nếu tùy chọn này được sử dụng nhiều lần, những lần xuất hiện sau đây sẽ không có gì khác biệt.
Ftp-thay thế cho người dùng
Tùy chọn này không có hiệu lực nếu PORT, EPRT hoặc EPSV được sử dụng thay vì PASV.
Nếu tùy chọn này được sử dụng hai lần, lần thứ hai sẽ lại sử dụng địa chỉ được đề xuất của máy chủ. --ftp-ssl (FTP) Hãy thử sử dụng SSL/TLS cho kết nối FTP. Hoàn nguyên về kết nối không an toàn nếu máy chủ không" t hỗ trợ SSL/TLS. (Đã thêm vào 7.11.0)
Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa tùy chọn này. --ftp-ssl-reqd (FTP) Yêu cầu SSL/TLS cho kết nối FTP. Chấm dứt kết nối nếu máy chủ không hỗ trợ SSL/TLS (Đã thêm trong 7.15.5)
Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa tùy chọn này. -F/-dạng
Ví dụ: để gửi tệp mật khẩu của bạn đến máy chủ, trong đó "password" là tên của trường biểu mẫu mà /etc/passwd sẽ là đầu vào:
Để đọc nội dung của tệp từ stdin thay vì tệp, hãy sử dụng - nơi lẽ ra tên tệp phải có. Điều này áp dụng cho cả @ và< constructs.
Bạn cũng có thể cho biết nên sử dụng Loại nội dung nào bằng cách sử dụng "type=", theo cách tương tự như:
Xoăn-F" [email được bảo vệ];type=text/html" url.com
Xoăn-F "name=daniel;type=text/foo" url.com
Bạn cũng có thể thay đổi rõ ràng trường tên của phần tải lên tệp bằng cách đặt tên tệp=, như sau:
Xoăn-F "file=@localfile;filename=nameinpost" url.com
Xem thêm các ví dụ và chi tiết trong HƯỚNG DẪN SỬ DỤNG.
Tùy chọn này có thể được sử dụng nhiều lần. --chuỗi biểu mẫu
Nếu được sử dụng kết hợp với -I, thay vào đó, dữ liệu POST sẽ được thêm vào URL với yêu cầu HEAD.
Nếu tùy chọn này được sử dụng nhiều lần, những lần xuất hiện sau đây sẽ không có gì khác biệt. -h/--help Trợ giúp sử dụng. -H/--tiêu đề
Curl sẽ đảm bảo rằng mỗi tiêu đề bạn thêm/thay thế sẽ được gửi bằng điểm đánh dấu cuối dòng thích hợp, do đó bạn nên không thêm điều đó như một phần của nội dung tiêu đề: không thêm dòng mới hoặc trả về đầu dòng, chúng sẽ chỉ làm mọi thứ rối tung lên cho bạn.
Xem thêm -A/--tác nhân người dùng Và -e/--người giới thiệu tùy chọn.
Tùy chọn này có thể được sử dụng nhiều lần để thêm/thay thế/xóa nhiều tiêu đề. --ignore-content-length (HTTP) Bỏ qua tiêu đề Độ dài nội dung. Điều này đặc biệt hữu ích cho các máy chủ chạy Apache 1.x, máy chủ này sẽ báo cáo Độ dài nội dung không chính xác đối với các tệp lớn hơn 2 gigabyte. -i/--include (HTTP) Bao gồm tiêu đề HTTP ở đầu ra. Tiêu đề HTTP bao gồm những thứ như tên máy chủ, ngày của tài liệu, phiên bản HTTP và hơn thế nữa...
Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại tắt tính năng bao gồm tiêu đề. --giao diện
Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. -I/--head (HTTP/FTP/FILE) Chỉ tìm nạp tiêu đề HTTP! Máy chủ HTTP có lệnh HEAD mà lệnh này sử dụng để không nhận được gì ngoài tiêu đề của tài liệu. Khi được sử dụng trên tệp FTP hoặc FILE, Curl chỉ hiển thị kích thước tệp và thời gian sửa đổi lần cuối.
Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ chỉ tắt tiêu đề. -j/--junk-session-cookies (HTTP) Khi Curl được yêu cầu đọc cookie từ một tệp nhất định, tùy chọn này sẽ khiến nó loại bỏ tất cả "cookie phiên". Về cơ bản, điều này sẽ có tác dụng tương tự như khi một phiên mới được bắt đầu. Các trình duyệt thông thường luôn loại bỏ cookie phiên khi chúng bị đóng.
Nếu tùy chọn này được sử dụng nhiều lần, mỗi lần xuất hiện sẽ bật/tắt tùy chọn này. -k/--không an toàn (SSL) Tùy chọn này rõ ràng cho phép cuộn tròn thực hiện các kết nối và chuyển giao SSL "không an toàn". Tất cả các kết nối SSL đều được cố gắng đảm bảo an toàn bằng cách sử dụng gói chứng chỉ CA được cài đặt theo mặc định. Điều này làm cho tất cả các kết nối được coi là "không an toàn" không thành công trừ khi -k/--không an toànĐược sử dụng.
Nếu tùy chọn này được sử dụng hai lần, lần thứ hai sẽ vô hiệu hóa nó. --chìa khóa
Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. --loại chính
Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. --krb4
Tùy chọn này yêu cầu thư viện được xây dựng với sự hỗ trợ của kerberos4. Điều này không phổ biến lắm. Sử dụng -V/--phiên bảnđể xem liệu lọn tóc của bạn có hỗ trợ nó hay không.
Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. -K/--config
Chỉ định tên tệp là "-" để làm cho Curl đọc tệp từ stdin.
Lưu ý rằng để có thể chỉ định một URL trong tệp cấu hình, bạn cần chỉ định nó bằng cách sử dụng --url tùy chọn chứ không phải chỉ bằng cách viết URL trên dòng riêng của nó. Vì vậy, nó có thể trông giống như thế này:
Tùy chọn này có thể được sử dụng nhiều lần.
Khi Curl được gọi, nó luôn luôn (trừ khi -qđược sử dụng) kiểm tra tệp cấu hình mặc định và sử dụng nó nếu tìm thấy. Tệp cấu hình mặc định được kiểm tra ở những vị trí sau theo thứ tự sau:
1) Curl cố gắng tìm "thư mục chính": Đầu tiên nó kiểm tra CURL_HOME và sau đó là các biến môi trường HOME. Nếu không, nó sử dụng getpwuid() trên các hệ thống giống unix (trả về thư mục chính cho người dùng hiện tại trong hệ thống của bạn). Trên Windows, sau đó nó sẽ kiểm tra biến APPDATA hoặc phương án cuối cùng là "%USERPROFILE%Application Data".
2) Trên windows, nếu không có tệp _curlrc trong thư mục chính, nó sẽ kiểm tra một tệp trong cùng thư mục mà tệp thực thi được đặt. Trên các hệ thống giống unix, nó sẽ chỉ cố tải .curlrc từ thư mục gốc đã xác định. --tỷ lệ giới hạn
Tốc độ nhất định được đo bằng byte/giây, trừ khi hậu tố được thêm vào. Việc thêm "k" hoặc "K" sẽ tính số là kilobyte, "m" hoặc M" sẽ tính là megabyte trong khi "g" hoặc "G" sẽ tính là gigabyte. Ví dụ: 200K, 3m và 1G.
Nếu bạn cũng đang sử dụng -Y/--giới hạn tốc độ tùy chọn, tùy chọn đó sẽ được ưu tiên và có thể làm tê liệt giới hạn tốc độ một chút, để giúp duy trì logic giới hạn tốc độ hoạt động.
Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. -l/--list-only (FTP) Khi liệt kê một thư mục FTP, khóa chuyển này buộc chỉ xem tên. Đặc biệt hữu ích nếu bạn muốn phân tích cú pháp nội dung của thư mục FTP bằng máy vì chế độ xem thư mục thông thường không sử dụng giao diện hoặc định dạng chuẩn.
Tùy chọn này khiến lệnh FTP NLST được gửi. Một số máy chủ FTP chỉ liệt kê các tệp trong phản hồi của chúng đối với NLST; chúng không bao gồm các thư mục con và các liên kết tượng trưng.
Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ chỉ vô hiệu hóa danh sách. --local-port
Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại tắt vị trí sau. --địa điểm đáng tin cậy (HTTP/HTTPS) Thích -L/--vị trí, nhưng sẽ cho phép gửi tên + mật khẩu tới tất cả các máy chủ mà trang web có thể chuyển hướng đến. Điều này có thể gây ra hoặc không gây ra vi phạm bảo mật nếu trang web chuyển hướng bạn đến một trang web mà bạn sẽ gửi thông tin xác thực của mình (là văn bản thuần túy trong trường hợp xác thực HTTP Basic).
Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại tắt vị trí sau. --Kích thước tệp tối đa
LƯU Ý: Kích thước tệp không phải lúc nào cũng được biết trước khi tải xuống và đối với các tệp như vậy, tùy chọn này không có hiệu lực ngay cả khi quá trình truyền tệp lớn hơn giới hạn đã cho này. Điều này liên quan đến cả chuyển giao FTP và HTTP. -m/--thời gian tối đa
Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. -M/--hướng dẫn sử dụng. Hiển thị văn bản trợ giúp lớn. -n/--netrc Làm cho việc quét cuộn tròn .netrc trong thư mục chính của người dùng để lấy tên đăng nhập và mật khẩu. Tệp này thường được sử dụng cho ftp trên Unix. Nếu được sử dụng với http, Curl sẽ kích hoạt xác thực người dùng. (4) hoặc (1) để biết chi tiết về định dạng tập tin. Curl sẽ không phàn nàn nếu tệp đó không có quyền phù hợp (nó không thể đọc được trên thế giới cũng như nhóm). Biến môi trường "HOME" được sử dụng để tìm thư mục chính.
Một ví dụ nhanh chóng và rất đơn giản về cách thiết lập một .netrcđể cho phép cuộn ftp vào máy Host.domain.com với tên người dùng "myself" và mật khẩu "secret" sẽ trông giống như:
máy chủ.domain.com tự đăng nhập mật khẩu bí mật
Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa việc sử dụng netrc. --netrc-tùy chọn Rất giống với --netrc, nhưng tùy chọn này làm cho việc sử dụng .netrc không bắt buộc và không bắt buộc như --netrc làm.
--negotiate (HTTP) Cho phép xác thực GSS-Negotiate. Phương pháp GSS-Negoiate được Microsoft thiết kế và được sử dụng trong các ứng dụng web của họ. Nó chủ yếu nhằm mục đích hỗ trợ xác thực Kerberos5 nhưng cũng có thể được sử dụng cùng với các phương thức xác thực khác. Để biết thêm thông tin, hãy xem bản nháp IETF-brezak-spnego-http-04.txt. -V/--phiên bản Tùy chọn này yêu cầu thư viện được xây dựng với sự hỗ trợ GSSAPI. Điều này không phổ biến lắm. Sử dụng
để xem phiên bản của bạn có hỗ trợ GSS-Negoiate hay không.
Khi sử dụng tùy chọn này, bạn cũng phải cung cấp tùy chọn -u/--user giả để kích hoạt mã xác thực đúng cách. Gửi "-u:" là đủ vì tên người dùng và mật khẩu từ tùy chọn -u không thực sự được sử dụng.
Nếu tùy chọn này được sử dụng nhiều lần, những lần xuất hiện sau đây sẽ không có gì khác biệt. -N/--no-buffer Tắt tính năng đệm của luồng đầu ra. Trong các tình huống làm việc bình thường, Curl sẽ sử dụng luồng đầu ra được đệm tiêu chuẩn sẽ có tác dụng là nó sẽ xuất dữ liệu theo từng khối, không nhất thiết phải chính xác khi dữ liệu đến. Sử dụng tùy chọn này sẽ vô hiệu hóa việc đệm đó.
Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại bật tính năng đệm. --ntlm (HTTP) Bật xác thực NTLM. Phương thức xác thực NTLM được Microsoft thiết kế và được các máy chủ web IIS sử dụng. Đó là một giao thức độc quyền, được thiết kế đảo ngược bởi những người thông minh và được triển khai theo hướng hoàn thiện dựa trên nỗ lực của họ. Loại hành vi này không nên được tán thành, thay vào đó, bạn nên khuyến khích tất cả những người sử dụng NTLM chuyển sang phương thức xác thực công khai và được ghi lại. Chẳng hạn như Thông báo. Nếu bạn muốn bật NTLM để xác thực proxy của mình, hãy sử dụng.
--proxy-ntlm -V/--phiên bản Tùy chọn này yêu cầu thư viện được xây dựng với sự hỗ trợ SSL. Sử dụng
để xem liệu lọn tóc của bạn có hỗ trợ NTLM hay không.
người chỉ định. Biến đó sẽ được thay thế bằng chuỗi hiện tại cho URL đang được tìm nạp. Giống như trong:
Xem thêm Bạn có thể sử dụng tùy chọn này nhiều lần tùy theo số lượng URL mà bạn có.--tạo-thư mục
tùy chọn để tạo các thư mục cục bộ một cách linh hoạt. -O/--remote-name Ghi đầu ra vào một tệp cục bộ có tên giống như tệp từ xa mà chúng tôi nhận được. (Chỉ sử dụng phần tệp của tệp từ xa, đường dẫn bị cắt.)
Bạn có thể sử dụng tùy chọn này nhiều lần tùy theo số lượng URL mà bạn có. --vượt qua
Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. --proxy-anyauth Yêu cầu cuộn tròn chọn phương thức xác thực phù hợp khi liên lạc với proxy đã cho. Điều này sẽ gây ra thêm một chuyến đi khứ hồi yêu cầu/phản hồi. (Đã thêm vào 7.13.2)
Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa xác thực sử dụng proxy-bất kỳ. --proxy-basic Yêu cầu Curl sử dụng xác thực HTTP Basic khi giao tiếp với proxy đã cho. Sử dụng --nền tảngđể bật HTTP Basic với máy chủ từ xa. Cơ bản là phương thức xác thực mặc định được sử dụng với proxy.
Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa xác thực HTTP Basic của proxy. --proxy-digest Yêu cầu cuộn tròn sử dụng xác thực HTTP Digest khi giao tiếp với proxy đã cho. Sử dụng --tiêuđể bật HTTP Digest với máy chủ từ xa.
Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại tắt proxy HTTP Digest. --proxy-ntlm Yêu cầu Curl sử dụng xác thực HTTP NTLM khi liên lạc với proxy đã cho. Sử dụng --ntlmđể kích hoạt NTLM với máy chủ từ xa.
Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại tắt proxy HTTP NTLM. -p/--proxytunnel Khi sử dụng proxy HTTP ( -x/--proxy), tùy chọn này sẽ khiến các giao thức không phải HTTP cố gắng chuyển qua proxy thay vì chỉ sử dụng nó để thực hiện các hoạt động giống như HTTP. Cách tiếp cận đường hầm được thực hiện với yêu cầu CONNECT proxy HTTP và yêu cầu proxy cho phép kết nối trực tiếp với số cổng từ xa mà Curl muốn chuyển qua đường hầm.
Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại tắt đường hầm proxy. -P/--ftp-port
(FTP) Đảo ngược vai trò người khởi tạo/người nghe khi kết nối với ftp. Công tắc này làm cho Curl sử dụng lệnh PORT thay vì PASV. Trong thực tế, PORT yêu cầu máy chủ kết nối với địa chỉ và cổng được chỉ định của máy khách, trong khi PASV yêu cầu máy chủ cung cấp địa chỉ IP và cổng để kết nối. phải là một trong: giao diện tức là "eth0" để chỉ định địa chỉ IP của giao diện nào bạn muốn sử dụng (chỉ Unix) địa chỉ IP tức là "192.168.10.1" để chỉ định số IP chính xác tên máy chủ, tức là "my.host.domain" cho chỉ định máy - làm cho cuộn tròn chọn cùng một địa chỉ IP đã được sử dụng cho kết nối điều khiểnNếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. Vô hiệu hóa việc sử dụng PORT với --ftp-pasv. Vô hiệu hóa nỗ lực sử dụng lệnh EPRT thay vì PORT bằng cách sử dụng --disable-eprt. EPRT thực sự là PORT++. -q Nếu được sử dụng làm tham số đầu tiên trên dòng lệnh, cuộn tròn tập tin cấu hình sẽ không được đọc và sử dụng. Xem -K/--configđể biết chi tiết về đường dẫn tìm kiếm tệp cấu hình mặc định. -Q/--trích dẫn
Tùy chọn này có thể được sử dụng nhiều lần. --tập tin ngẫu nhiên
chỉ định hai phạm vi 100 byte riêng biệt(*)(H)
(*) = LƯU Ý rằng điều này sẽ khiến máy chủ phản hồi bằng phản hồi nhiều phần!
Bạn cũng nên lưu ý rằng nhiều máy chủ HTTP/1.1 không bật tính năng này, do đó khi bạn cố gắng lấy một phạm vi, thay vào đó bạn sẽ nhận được toàn bộ tài liệu.
Tải xuống phạm vi FTP chỉ hỗ trợ cú pháp đơn giản "start-stop" (tùy chọn bỏ qua một trong các số). Nó phụ thuộc vào lệnh SIZE không phải RFC.
Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. -R/--remote-time Khi được sử dụng, điều này sẽ khiến libcurl cố gắng tìm ra dấu thời gian của tệp từ xa và nếu có, hãy làm cho tệp cục bộ có cùng dấu thời gian đó.
Khi Curl chuẩn bị thử lại một lần chuyển, trước tiên, nó sẽ đợi một giây và sau đó đối với tất cả các lần thử lại sắp tới, nó sẽ tăng gấp đôi thời gian chờ cho đến khi đạt đến 10 phút, sau đó sẽ là độ trễ giữa các lần thử lại còn lại. Bằng cách sử dụng --thử lại-trì hoãn bạn vô hiệu hóa thuật toán rút lui theo cấp số nhân này. Xem thêm --thử lại-thời gian tối đađể giới hạn tổng thời gian cho phép để thử lại. (Đã thêm vào 7.12.3)
Nếu tùy chọn này được sử dụng nhiều lần, lần xuất hiện cuối cùng sẽ quyết định số tiền. --thử lại-trì hoãn
Nếu tùy chọn này được sử dụng nhiều lần, lần xuất hiện cuối cùng sẽ quyết định số tiền. --thử lại-thời gian tối đa
Nếu tùy chọn này được sử dụng nhiều lần, lần xuất hiện cuối cùng sẽ quyết định số tiền. -s/--im lặng Chế độ im lặng. Không hiển thị đồng hồ đo tiến độ hoặc thông báo lỗi. Làm cho Curl bị tắt tiếng.
Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại tắt chế độ im lặng. -S/--show-error Khi được sử dụng với -s, nó sẽ khiến thông báo lỗi hiển thị khi bị lỗi.
Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại tắt hiển thị lỗi. --socks4
-x/--proxy
Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. --vớ5
Tùy chọn này ghi đè mọi việc sử dụng trước đó của -x/--proxy, vì chúng loại trừ lẫn nhau.
Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. (Tùy chọn này trước đây đã được ghi lại sai và được sử dụng dưới dạng --socks mà không có số được thêm vào.) --stderr
Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. --tcp-nodelay Bật tùy chọn TCP_NODELAY. Xem (3) trang man để biết chi tiết về tùy chọn này. (Đã thêm vào 7.11.2)
Nếu tùy chọn này được sử dụng nhiều lần, mỗi lần xuất hiện sẽ bật/tắt tùy chọn này. -t/--tùy chọn telnet
TTYPE=
XDISPLOC=
MỚI_ENV= Đặt một biến môi trường. -T/--tải lên tập tin
Sử dụng tên tệp "-" (một dấu gạch ngang) để sử dụng stdin thay vì một tệp nhất định.
Bạn có thể chỉ định một -T cho mỗi URL trên dòng lệnh. Mỗi cặp -T + URL chỉ định nội dung cần tải lên và tải lên ở đâu. Curl cũng hỗ trợ "toàn cầu hóa" đối số -T, nghĩa là bạn có thể tải nhiều tệp lên một URL bằng cách sử dụng cùng một kiểu toàn cầu hóa URL được hỗ trợ trong URL, như sau:
CÁC TẬP TIN
~/.curlrc Tệp cấu hình mặc định, xem -K/--configđể biết chi tiết.MÔI TRƯỜNG
http ProxyMÃ THOÁT
Tồn tại một loạt mã lỗi khác nhau và thông báo lỗi tương ứng của chúng có thể xuất hiện trong điều kiện xấu. Tại thời điểm viết bài này, mã thoát là: 1 Giao thức không được hỗ trợ. Bản dựng Curl này không hỗ trợ giao thức này. 2 Không khởi tạo được. 3 URL không đúng định dạng. Cú pháp không đúng. 4 URL người dùng bị định dạng sai. Phần người dùng của cú pháp URL không chính xác. 5 Không thể phân giải proxy. Không thể phân giải máy chủ proxy đã cho. 6 Không thể phân giải máy chủ. Máy chủ từ xa đã cho chưa được giải quyết. 7 Không thể kết nối với máy chủ. 8 FTP trả lời máy chủ kỳ lạ. Máy chủ đã gửi dữ liệu không thể phân tích cú pháp. 9 Quyền truy cập FTP bị từ chối. Máy chủ đã từ chối đăng nhập hoặc từ chối quyền truy cập vào tài nguyên hoặc thư mục cụ thể mà bạn muốn truy cập. Thông thường, bạn đã cố gắng thay đổi sang một thư mục không tồn tại trên máy chủ. . 10 người dùng/mật khẩu FTP không chính xác. Một hoặc cả hai đều không được máy chủ chấp nhận. 11 FTP trả lời PASS kỳ lạ. Curl không thể phân tích cú pháp câu trả lời được gửi tới yêu cầu PASS. 12 câu trả lời kỳ lạ của FTP NGƯỜI DÙNG. Curl không thể phân tích cú pháp câu trả lời được gửi tới yêu cầu NGƯỜI DÙNG. 13 FTP trả lời PASV kỳ lạ, Curl không thể phân tích cú pháp trả lời được gửi tới yêu cầu PASV 14 FTP ở định dạng 227 kỳ lạ Curl không thể phân tích dòng 227 mà máy chủ đã gửi. 15 FTP không thể lấy máy chủ. Không thể giải quyết IP máy chủ mà chúng tôi có trong dòng 227. 16 FTP không thể kết nối lại. Không thể kết nối với máy chủ mà chúng tôi có ở đường dây 227. 17 FTP không thể đặt nhị phân Không thể thay đổi phương thức truyền sang nhị phân. 18 Tệp một phần. Chỉ một phần của tập tin được chuyển giao. 19 FTP không thể tải xuống/truy cập tệp đã cho, lệnh RETR (hoặc tương tự) không thành công. 20 Lỗi ghi FTP. Quá trình truyền bị lỗi do máy chủ báo cáo. 21 lỗi trích dẫn FTP. Trang HTTP không được truy xuất. Không tìm thấy url được yêu cầu hoặc trả về một lỗi khác với mã lỗi HTTP từ 400 trở lên. Mã trả về này chỉ xuất hiện nếu. -f/--thất bại Được sử dụng. Những cái hiện có có nghĩa là không bao giờ thay đổi.21 câu trả lời
Có thể bạn đã có mái tóc xoăn rồi
Bạn có thể không cần tải xuống bất cứ thứ gì:
- Nếu bạn đang sử dụng Windows 10 phiên bản 1803 trở lên, hệ điều hành của bạn sẽ đi kèm với một bản sao cuộn tròn đã được định cấu hình và sẵn sàng để sử dụng.
- Nếu bạn muốn tạo một thư mục riêng cho nó, C:\Program Files\curl\ hoặc C:\curl\ sẽ làm được.
- Nếu bạn có nhiều tệp thực thi miễn phí và không muốn thêm nhiều thư mục riêng biệt vào PATH của mình, hãy sử dụng một thư mục duy nhất cho mục đích này, chẳng hạn như C:\Program Files\tools\ hoặc C:\tools\ .
- Nhấp vào menu Bắt đầu của Windows 10.
- Bạn sẽ thấy kết quả tìm kiếm. Chỉnh sửa biến môi trường hệ thống. Chọn cái này.
- Cửa sổ Thuộc tính hệ thống sẽ mở ra. Nhấn vào nút Biến môi trườngở phía dưới.
- Chọn biến "Đường dẫn" trong phần "Biến hệ thống" (trường dưới cùng). Nhấn vào nút Thay đổi.
- Nhấp chuột " Thêm vào" và dán đường dẫn đến thư mục chứa Curl.exe.
- Nhấp chuột ĐƯỢC RỒI, Nếu cần thiết. Đóng các cửa sổ bảng điều khiển đang mở và mở lại chúng để chúng nhận được PATH mới.
Nếu bạn có nhiều nhu cầu bí truyền hơn (ví dụ: bạn cần bản dựng cygwin, bản dựng của bên thứ 3, libcurl, tệp tiêu đề, nguồn, v.v.), hãy sử dụng trình hướng dẫn tải xuống cuộn tròn. Sau khi trả lời năm câu hỏi, bạn sẽ nhận được danh sách các liên kết tải xuống.
Loại bỏ và điều chỉnh độ cong
Tìm Curl.exe trong gói đã tải xuống của bạn; có lẽ nó ở dưới bin\ .
Chọn một vị trí trên ổ cứng sẽ đóng vai trò là ngôi nhà cố định cho các lọn tóc:
Đặt Curl.exe vào thư mục. Và không bao giờ di chuyển thư mục hoặc nội dung của nó.
Sau đó, bạn sẽ muốn cung cấp tính năng cuộn tròn ở bất kỳ đâu trên dòng lệnh. Để thực hiện việc này, hãy thêm thư mục vào PATH, như thế này:
Bây giờ hãy tận hưởng việc gõ Curl trên bất kỳ dòng lệnh nào. Thời gian để vui chơi!
Để chạy Curl từ dòng lệnh
a) Nhấp chuột phải vào biểu tượng My Computer
b) Chọn "Thuộc tính"
d) Chuyển đến tab [Nâng cao] - nút "Biến môi trường"
e) Trong "Biến hệ thống", chọn "Đường dẫn" và "Chỉnh sửa"
f) Thêm dấu chấm phẩy và sau đó là đường dẫn đến nơi bạn đặt tập tin Curl.exe (ví dụ: D:\software\curl)
Bây giờ bạn có thể chạy từ dòng lệnh bằng cách gõ:
Cuộn tròn www.google.com
Bắt đầu với Windows 10 phiên bản 1803 (và cũ hơn, Insider build 17063), bạn không còn cài đặt Curl . Windows chứa Curl.exe (và tar.exe) của riêng nó trong C:\Windows\System32\ mà bạn có thể truy cập trực tiếp từ CMD thông thường.
C:\Users\vonc>C:\Windows\System32\curl.exe --version Curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL Ngày phát hành: Giao thức: tệp dict ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp Tính năng: AsynchDNS IPv6 SSPI Kerberos SPNEGO NTLM SSL C:\Users\vonc>C:\Windows\System32\tar.exe --version bsdtar 3.3.2 - libarchive 3.3.2 zlib/1.2.5.f- ipp
Có lẽ cần lưu ý rằng Powershell v3 trở lên chứa lệnh ghép ngắn Invoke-WebRequest, có một số khả năng cuộn tròn. Có lẽ cũng đáng đề cập đến các lệnh ghép ngắn New-WebServiceProxy và Invoke-RestMethod.
Tôi không chắc chúng có phù hợp với bạn hay không, nhưng mặc dù tôi không phải là Windows, nhưng tôi phải nói rằng tôi thấy cách tiếp cận đối tượng mà PS sử dụng dễ dàng hơn nhiều khi làm việc với các tiện ích như Curl, wget, v.v. Chúng có thể đáng xem
Bạn có thể tạo phiên bản mới nhất của Curl, openssl, libssh2 và zlib trong 3 bước đơn giản bằng cách làm theo hướng dẫn này.
Curl được xây dựng tĩnh, do đó bạn không cần phải truyền bá thời gian chạy động cần thiết.
Bạn cũng có thể tải xuống phiên bản dựng sẵn (x86 và x64) từ
Tôi đang tìm kiếm quá trình tải xuống Xoăn và mọi nơi họ nói hãy sao chép tập tin Curl.exe trên System32, nhưng họ không cung cấp liên kết trực tiếp. nên bạn có thể tận hưởng ở đây Curl.exe dễ dàng để thư mục thùng rác Chỉ
giải nén nó và sau đó vào thư mục bin nơi bạn sẽ nhận được tệp exe
Tôi nghĩ tôi sẽ viết chính xác những gì tôi đã làm (phiên bản Windows 10, 64-bit):
Chọn tệp thực thi cuộn tròn.
Chọn Win64.
Chọn phổ quát.
Chọn bất kỳ một.
phiên bản cuộn tròn: 7.53.1 - Đã bật SSH đã bật SSL. Tín dụng: Victor Shakats. Gói này là một kiểu cuộn tròn có thể thực thi được. Liên kết này sẽ giúp bạn có được tệp nhị phân cuộn tròn được biên dịch trước (hoặc trong một số trường hợp, sử dụng thông tin được cung cấp trên trang mà liên kết sẽ đưa bạn đến). Bạn có thể hoặc không thể cài đặt libcurl làm thư viện/DLL dùng chung. Tệp được đóng gói bằng 7zip. 7zip là một định dạng lưu trữ tập tin.
Nhấp vào tải xuống.
Bạn nên có tệp Curl-7.53.1-win64-mingw.7z trong thư mục tải xuống của mình.
Cài đặt 7-Zip nếu bạn chưa có.
Nhấp chuột phải, 7-Zip, Giải nén tại đây. Sao chép và dán tệp được giải nén vào đâu đó như Z:\Tools\
Nếu bạn nhìn vào thư mục bin, bạn sẽ thấy Curl.exe. Nếu bạn nhấp đúp vào nó, cửa sổ sẽ nhanh chóng nhấp nháy và biến mất. Để chạy nó, bạn cần sử dụng dòng lệnh. Chuyển đến thư mục bin của bạn và nhập cuộn tròn theo sau là các tùy chọn của bạn để thực hiện yêu cầu. Bạn phải sử dụng dấu ngoặc kép. Dấu ngoặc đơn sẽ không hoạt động với tính năng cuộn tròn trên Windows.
Bây giờ bạn cần thêm Curl vào biến Đường dẫn người dùng để không phải điều hướng đến đúng thư mục để chạy chương trình. Đi tới PC này, Máy tính, Thuộc tính hệ thống, Cài đặt hệ thống nâng cao, đăng nhập với tư cách quản trị viên (bạn không phải là quản trị viên phải không?). Biến môi trường, Biến hệ thống, xem danh sách và chọn Đường dẫn, sau đó Chỉnh sửa, rồi Mới, sau đó, ví dụ:
Z:\Tools\curl-7.53.1-win64-MinGW\Bin
Bạn có thể thêm dấu gạch chéo ngược nếu muốn, tôi không nghĩ nó quan trọng. Nhấn nút di chuyển lên cho đến khi nó ở đầu danh sách và bạn có thể dễ dàng nhìn thấy nó từ màn hình trước. Bấm OK, OK, OK, sau đó mở dấu nhắc lệnh và bạn có thể chạy Curl bằng cách gõ Curl từ bất kỳ thư mục nào với tư cách bất kỳ người dùng nào. Đừng quên dấu ngoặc kép của bạn.
Đây là câu trả lời tôi muốn nhận được.
Trình cài đặt này giúp tôi dễ dàng http://www.confusedbycode.com/curl/
Chúng tôi xin giới thiệu với bạn một khóa học mới của nhóm Codeby- "Thử nghiệm thâm nhập các ứng dụng Web từ đầu." Lý thuyết chung, chuẩn bị môi trường làm việc, làm mờ và lấy dấu vân tay thụ động, làm mờ chủ động, Lỗ hổng, Hậu khai thác, Công cụ, Kỹ thuật xã hội và nhiều hơn thế nữa.
cURL dùng để làm gì?
- cURL rất tốt để mô phỏng hành động của người dùng trong trình duyệt.
Ví dụ thực tế thực tế: bạn cần khởi động lại bộ định tuyến (modem) để thay đổi địa chỉ IP. Để thực hiện việc này, bạn cần: đăng nhập vào bộ định tuyến, truy cập trang bảo trì và nhấp vào nút “Khởi động lại”. Nếu hành động này cần được thực hiện nhiều lần thì quy trình phải được lặp lại. Đồng ý rằng bạn không muốn thực hiện công việc này một cách thủ công mọi lúc. cURL cho phép bạn tự động hóa tất cả những điều này. Chỉ với một vài lệnh cURL, bạn có thể đạt được ủy quyền và hoàn thành tác vụ trên bộ định tuyến.
- cURL rất hữu ích để lấy dữ liệu từ các trang web bằng dòng lệnh.
Một ví dụ thực tế khác: chúng tôi muốn triển khai hiển thị số liệu thống kê chung cho một số trang web. Nếu chúng tôi sử dụng cURL, thì đây sẽ trở thành một nhiệm vụ hoàn toàn tầm thường: sử dụng cURL, chúng tôi xác thực trên dịch vụ thu thập số liệu thống kê (nếu được yêu cầu), sau đó (một lần nữa sử dụng lệnh cURL), chúng tôi có được các trang cần thiết, phân tích cú pháp dữ liệu chúng tôi cần; quy trình được lặp lại cho tất cả các trang web của chúng tôi, sau đó chúng tôi thêm và hiển thị kết quả cuối cùng.
Những thứ kia. các trường hợp sử dụng cURL là khá thực tế, mặc dù phần lớn các lập trình viên sử dụng nó cho chương trình của họ đều cần cURL.
cURL hỗ trợ nhiều giao thức và phương thức ủy quyền, có thể truyền tệp, hoạt động chính xác với cookie, hỗ trợ chứng chỉ SSL, proxy và hơn thế nữa.
cURL trong PHP và dòng lệnh
Chúng ta có thể sử dụng cURL theo hai cách chính: trong tập lệnh PHP và trên dòng lệnh.
Để bật cURL trong PHP trên máy chủ, bạn cần bỏ ghi chú dòng trong tệp php.ini
Tiện ích mở rộng=php_curl.dll
Và sau đó khởi động lại máy chủ.
Trên Linux bạn cần cài đặt gói Curl.
Trên Debian, Ubuntu hoặc Linux Mint:
$ sudo apt-get cài đặt cuộn tròn
Trên Fedora, CentOS hoặc RHEL:
$ sudo yum cài đặt cuộn tròn
Để thấy rõ sự khác biệt trong cách sử dụng PHP và trên dòng lệnh, chúng ta sẽ thực hiện các tác vụ giống nhau hai lần: đầu tiên là trong tập lệnh PHP và sau đó là trên dòng lệnh. Hãy cố gắng đừng nhầm lẫn.
Lấy dữ liệu bằng cURL
Lấy dữ liệu bằng cURL trong PHP
Ví dụ trong PHP:
Mọi thứ đều rất đơn giản:
$target_url— địa chỉ của trang web mà chúng tôi quan tâm. Sau địa chỉ trang web, bạn có thể đặt dấu hai chấm và thêm địa chỉ cổng (nếu cổng khác với cổng tiêu chuẩn).
cuộn_init— khởi tạo một phiên mới và trả về một bộ mô tả, trong ví dụ của chúng ta được gán cho một biến $ch.
Sau đó chúng tôi thực hiện yêu cầu bằng hàm cURL Curl_exec, trong đó một bộ mô tả được truyền dưới dạng tham số.
Mọi thứ đều rất logic, nhưng khi tập lệnh này được thực thi, nội dung của trang sẽ được hiển thị trên trang của chúng tôi. Nhưng điều gì sẽ xảy ra nếu chúng ta không muốn hiển thị nội dung mà muốn ghi nó vào một biến (để xử lý hoặc phân tích cú pháp tiếp theo).
Hãy thêm một chút vào kịch bản của chúng tôi:
0) ( echo "Lỗi cuộn tròn: " . Curl_error($ch); ) Curl_close($ch); ?>
Chúng tôi có một dòng Curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);.
Curl_setopt- đặt tùy chọn. Bạn có thể tìm thấy danh sách đầy đủ các tùy chọn trên trang này: http://php.net/manual/ru/function.curl-setopt.php
$response_data =curl_exec($ch);
Bây giờ giá trị tập lệnh được gán cho biến $response_data, với biến này có thể thực hiện các thao tác tiếp theo. Ví dụ: bạn có thể hiển thị nội dung của nó.
Nếu (curl_errno($ch) > 0) ( echo "Curl error: " .curl_error($ch); )
phục vụ cho việc gỡ lỗi trong trường hợp xảy ra lỗi.
Lấy dữ liệu bằng cURL trên dòng lệnh
Trên dòng lệnh, chỉ cần gõ
Curl mi-al.ru
thay vì ở đâu mi-al.ru- địa chỉ trang web của bạn.
Nếu bạn cần sao chép dữ liệu vào một biến, thay vì hiển thị kết quả trên màn hình, hãy làm như sau:
Temp=`curl mi-al.ru`
Tuy nhiên, một số dữ liệu vẫn được hiển thị:
Để ngăn chúng hiển thị, hãy thêm phím -S:
Temp=`curl -s mi-al.ru`
Bạn có thể xem những gì đã được ghi lại:
Tiếng vọng $temp | ít hơn
Xác thực cơ bản và HTTP
Xác thực, nói một cách đơn giản, là nhập tên người dùng và mật khẩu.
Xác thực cơ bản là xác thực dựa trên máy chủ. Đối với điều này, hai tệp được tạo: .htaccess Và .htpasswd
Nội dung của tệp .htaccess giống như thế này
AuthName "Chỉ dành cho người dùng đã đăng ký!" AuthType Basic yêu cầu AuthUserFile của người dùng hợp lệ /home/freeforum.biz/htdocs/.htpassw
Nội dung của tệp .htpasswd giống như thế này:
Mial:CRdiI.ZrZQRRc
Những thứ kia. băm mật khẩu và đăng nhập.
Khi bạn cố gắng truy cập vào thư mục được bảo vệ bằng mật khẩu, trình duyệt sẽ hiển thị nội dung như sau:
Xác thực HTTP là trường hợp chúng tôi nhập thông tin đăng nhập và mật khẩu vào một biểu mẫu trên trang web. Xác thực này được sử dụng khi đăng nhập vào thư, diễn đàn, v.v.
Xác thực cURL cơ bản (PHP)
Có một trang http://62.113.208.29/Update_FED_DAYS/ yêu cầu chúng ta đăng nhập:
Hãy thử tập lệnh ban đầu của chúng tôi:
0) ( echo "Lỗi cuộn tròn: " . Curl_error($ch); ) else ( echo $response_data; ) Curl_close($ch); ?>
Mặc dù script tin rằng không có lỗi nhưng chúng tôi không thích kết quả đầu ra chút nào:
Thêm hai dòng:
Curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); Curl_setopt($ch, CURLOPT_USERPWD, "ru-board:ru-board");
Dòng đầu tiên chúng tôi đặt loại xác thực - cơ bản. Dòng thứ hai chứa tên và mật khẩu được phân tách bằng dấu hai chấm (trong trường hợp của chúng tôi, tên và mật khẩu giống nhau - ru-board). Hóa ra như thế này:
0) ( echo "Lỗi cuộn tròn: " . Curl_error($ch); ) else ( echo $response_data; ) Curl_close($ch); ?>
Xác thực cURL cơ bản (trên dòng lệnh)
Điều tương tự có thể đạt được trên dòng lệnh bằng một dòng:
Curl -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/
Tôi không quên chỉ định loại xác thực, chỉ là trong cURL loại xác thực cơ bản là mặc định.
Mọi thứ diễn ra nhanh chóng trên dòng lệnh đến nỗi vì thất vọng, tôi đã viết chương trình sau. Cô kết nối với trang web và tải xuống bản cập nhật mới nhất:
Temp=`curl -s -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/ | grep -E -o "Update_FED_201(1).(2).(2).7z" | duy nhất | đuôi -n 1`; cuộn tròn -o $temp -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/$temp
Chỉ với một vài lệnh nữa bạn có thể thêm:
- giải nén kho lưu trữ vào thư mục được chỉ định;
- tung ra các bản cập nhật ConsultantPlus (đây là những bản cập nhật dành cho nó);
- bạn có thể kiểm tra xem bản cập nhật mới nhất đã được tải xuống hay bản cập nhật mới đã xuất hiện;
- thêm tất cả vào Cron để cập nhật hàng ngày.
cURL xác thực HTTP
Xác thực HTTP cURL trong PHP
Chúng ta cần biết:
- địa chỉ nơi gửi dữ liệu xác thực
- phương thức gửi GET hoặc POST
- đăng nhập
- mật khẩu
Đôi khi dữ liệu này là không đủ. Hãy tìm ra nó.
Địa chỉ bạn cần gửi dữ liệu có thể được lấy từ biểu mẫu xác thực. Ví dụ: