"cURL"을 사용하여 요청할 때 쿠키 경로를 무시하는 방법

"cURL"을 사용하여 요청할 때 쿠키 경로를 무시하는 방법

두 개의 웹 서비스가 있습니다

  1. https://localhost/svc/auth 먼저 인증 헤더로 호출한 다음 쿠키를 얻습니다.

  2. https://localhost/svc/catalog/1234첫 번째 호출에서 설정된 쿠키를 제공하여 호출합니다.

다음과 같이 cURL을 사용하여 "1234" 디렉터리를 얻으려고 합니다.

curl -u Username:Password -s -i -X GET 'http://localhost/svc/auth' -c /tmp/site-cookie.txt 

curl -b /tmp/site-cookie.txt -s -i -X GET 'http://localhost/svc/article-stock/v1/car/CRH4203052?sid=esi&channel=str&site=0148' 

하지만 쿠키 경로가 다음과 같이 설정되어 있으므로 이는 작동하지 않습니다.

# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.

localhost   FALSE   /svc/auth       FALSE   0   MYCOOKIE    VXNlcm5hbWU6RU5DKFFva0VSaDdaMXpKTHRYRHJIUzlvaXVuakVpbURHYmsyaDFRUXlvclA4RD0p

웹 서비스 개발자에게 쿠키의 경로를 변경하도록 요청할 수 있다는 것을 알고 있지만 cURL이 이러한 경로를 무시하거나 저장할 수 없는지 궁금합니다.

답변1

서버가 원하는 것이 무엇인지 확신이 있다면 쿠키를 받은 후 쿠키를 편집하여 쿠키가 적용되는 URL을 확장할 수 있습니다. 예를 들어 첫 번째 컬 명령 뒤에 sed를 추가하여 URL 경로( /auth)의 후행 부분을 제거합니다.

sed -i -e '/^localhost/s|/auth||' /tmp/site-cookie.txt

/svc그런 다음 이제 URL()의 시작 부분과 일치하므로 쿠키를 전달하는 두 번째 컬을 실행합니다 .

관련 정보