Câu trả lời:
Sử dụng cờ tiêu đề vị trí:
curl -L <URL>
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."
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>
Như đã nói, để theo dõi chuyển hướng, bạn có thể sử dụng cờ -L
hoặ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.