커맨드 라인 cURL로 리디렉션을 수행하는 방법이 있습니까?


456

나는 PHP 스크립트에서 그것을 알고있다 :

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

리디렉션을 따릅니다. 커맨드 라인 cURL로 리디렉션을 수행하는 방법이 있습니까?

답변:


762

위치 헤더 플래그를 사용하십시오.

curl -L <URL>


1
스프레드 시트에 액세스하기 위해 Google 인증에서는 작동하지 않습니다. : /
fatuhoku

13
man curl: "인증을 사용하는 경우 curl은 자격 증명을 초기 호스트로만 보냅니다. <...>이 위치를 변경하는 방법에 대해서는 --location-trusted도 참조하십시오."
hudolejev

25

나는 비슷한 문제가 있었다. 나는 그것이 의견 중 하나에 도움이 될 것이라고 생각하기 때문에 여기에 내 솔루션을 게시하고 있습니다.

나를 위해 장애물은 페이지에 로그인이 필요하고 자바 스크립트를 통해 새 URL을 제공한다는 것입니다. 내가해야 할 일은 다음과 같습니다.

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

j_username 및 j_password는 내 웹 사이트 로그인 양식의 필드 이름입니다. 사용자 이름 필드의 '이름'과 비밀번호 필드의 '이름'이 무엇인지 확인하려면 웹 페이지의 소스를 열어야합니다. 그 후 새 URL이 포함 된 Java 스크립트가있는 html 파일로 이동합니다. 이것을 파싱 한 후 새로운 URL로 다시 제출하십시오.

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


15

언급했듯이 리디렉션을 따르 려면 플래그 -L또는 --location다음을 사용할 수 있습니다 .

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

그러나 리디렉션 수를 제한 하려면 매개 변수를 추가하십시오.--max-redirs

--max-redirs <num>

허용되는 최대 리디렉션 추적 수를 설정하십시오. 만약-L , --location사용이 옵션은 "absurdum에"리디렉션 다음에서 컬을 방지 할 수 있습니다. 기본적으로 제한은 50 리디렉션으로 설정되어 있습니다. 무한대로 만들려면이 옵션을 -1로 설정하십시오. 이 옵션을 여러 번 사용하면 마지막 옵션이 사용됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.