Có cách nào để theo dõi chuyển hướng với dòng lệnh cURL không?


456

Tôi biết rằng trong một tập lệnh php:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

sẽ theo chuyển hướng. Có cách nào để theo dõi chuyển hướng với dòng lệnh cURL không?

Câu trả lời:


763

Sử dụng cờ tiêu đề vị trí:

curl -L <URL>


1
Điều này cũng không hoạt động với việc xác thực với Google để truy cập bảng tính. : /
fatuhoku

13
man curl: "Khi xác thực được sử dụng, curl chỉ gửi thông tin đăng nhập của nó đến máy chủ ban đầu. <...> Xem thêm - đáng tin cậy về cách thay đổi điều này."
hudolejev

25

Tôi đã có một vấn đề tương tự. Tôi đang đăng giải pháp của mình lên đây vì tôi tin rằng nó có thể giúp một trong những người bình luận.

Đối với tôi, trở ngại là trang yêu cầu đăng nhập và sau đó cho tôi một URL mới thông qua javascript. Đây là những gì tôi đã phải làm:

curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <URL>

Lưu ý rằng j_username và j_password là tên của các trường cho mẫu đăng nhập trang web của tôi. Bạn sẽ phải mở nguồn của trang web để xem 'tên' của trường tên người dùng và 'tên' của trường mật khẩu là gì trong trường hợp của bạn. Sau đó tôi đi một tệp html với tập lệnh java trong đó URL mới được nhúng. Sau khi phân tích cú pháp này, chỉ cần gửi lại với URL mới:

curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <NEWURL>


15

Như đã nói, để theo dõi chuyển hướng, bạn có thể sử dụng cờ -Lhoặc --location:

curl -L http://www.example.com

Nhưng, nếu bạn muốn giới hạn số lượng chuyển hướng , hãy thêm tham số--max-redirs

--max-redirs <num>

Đặt số lần theo dõi chuyển hướng tối đa được phép. Nếu -L, --locationđược sử dụng, tùy chọn này có thể được sử dụng để ngăn cuộn tròn theo các chuyển hướng "trong vô lý". Theo mặc định, giới hạn được đặt thành 50 chuyển hướng. Đặt tùy chọn này thành -1 để làm cho nó vô hạn. Nếu tùy chọn này được sử dụng nhiều lần, cái cuối cùng sẽ được sử dụng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.