Como ignorar o caminho do cookie ao usar a solicitação 'cURL'

0

Eu tenho dois serviços da web

  1. link que eu chamo primeiro com cabeçalhos de autorização e recebo um cookie

  2. link que eu chamo fornecendo o cookie definido pela primeira chamada

Estou tentando usar cURL assim para obter o catálogo "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' 

Mas isso não funciona, pois parece que o cookie tem o caminho definido assim:

# 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

Eu sei que posso pedir ao desenvolvedor do serviço da Web para alterar o caminho em seu cookie, mas eu queria saber se cURL pode ignorar esse caminho ou não salvá-lo?

    
por рüффп 28.12.2016 / 22:53

1 resposta

1

Se você estiver confiante no que o servidor deseja, edite o cookie depois de recebê-lo e, assim, estenda os URLs aos quais ele se aplica. Por exemplo, após o primeiro comando curl, adicione um sed para remover a parte final do caminho do URL ( /auth ):

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

em seguida, execute o segundo curl e ele passará o cookie, pois agora corresponde ao início do URL ( /svc ).

    
por 29.12.2016 / 19:07