Gauti tik atsakymo antraštę iš HTTP POST naudojant garbaną

Galite prašyti antraštes naudodami HTTP HEAD kaip -I parinktį curl(1) .

 $ curl -I / 

Ilgai trunkantys HTML atsakymai yra skausmas, norint gauti komandų eilutę, todėl norėčiau gauti tik antraštę kaip atsiliepimą apie mano POST užklausas. Tačiau HEAD ir POST yra du skirtingi metodai.

Kaip gauti garbaną, kad būtų rodomi tik atsakymų į POST užklausą antraštės?

454
08 апр. Nustatė Jonathan Allard 08 Bal. 2012-04-08 06:12 '12 6:12 2012-04-08 06:12
@ 7 atsakymai
 -D, --dump-header <file> Write the protocol headers to the specified file. This option is handy to use when you want to store the headers that a HTTP site sends to you. Cookies from the headers could then be read in a second curl invocation by using the -b, --cookie option! The -c, --cookie-jar option is however a better way to store cookies. 

ir taip pat

 -S, --show-error When used with -s, --silent, it makes curl show an error message if it fails. 

ir taip pat

 -L/--location (HTTP/HTTPS) If the server reports that the requested page has moved to a different location (indicated with a Location: header and a 3XX response code), this option will make curl redo the request on the new place. If used together with -i/--include or -I/--head, headers from all requested pages will be shown. When authentication is used, curl only sends its credentials to the initial host. If a redirect takes curl to a different host, it wont be able to intercept the user+password. See also --location-trusted on how to change this. You can limit the amount of redirects to follow by using the --max-redirs option. When curl follows a redirect and the request is not a plain GET (for example POST or PUT), it will do the following request with a GET if the HTTP response was 301, 302, or 303. If the response code was any other 3xx code, curl will re-send the following request using the same unmodified method. 

iš žmogaus puslapio. taip

 curl -sSL -D - www.acooke.org -o /dev/null 

turėtų būti nukreipiami, iškraunami antraštės į stdout ir siunčia duomenis į / dev / null (tai yra GET, o ne POST, bet tu gali padaryti tą patį su POST - tiesiog pridėkite visus parametrus, kuriuos jau naudojate duomenų perkėlimui)

Atkreipkite dėmesį į - po -D kuris rodo, kad išvesties failas yra standartinis.

647
08 апр. andrew cooke atsakymas 2012-04-08 07:18 '12, 07:18 AM 2012-04-08 07:18

Kiti atsakymai reikalauja, kad atsako kūnas būtų įkeltas. Tačiau yra būdas atlikti POST užklausą, kuri tik atkurs antraštę:

 curl -s -I -X POST http://www.google.com 
border=0

-I pati atlieka HEAD užklausą, kurią galima iš naujo apibrėžti -X POST kad įvykdytų POST užklausą (arba kitą) ir vis tiek gautų tik antraštės duomenis.

109
31 июля '16 в 3:12 2016-07-31 03:12 atsakymas pateikiamas siracusoje liepos 16 d. 16 d. 3:12 2016-07-31 03:12

Ilgai reaguojantiems organams (ir kitoms panašioms situacijoms) sprendimas, kurį naudoju, visada yra telefonu, kad būtų less

 curl -i https://api.github.com/users | less 

arba

 curl -s -D - https://api.github.com/users | less 

atliks darbą.

42
05 нояб. atsakymas pateikiamas fiatjaf 05 lapkričio. 2014-11-05 16:44 '14, 16:44 2014-11-05 16:44

Šioje komandoje rodoma papildoma informacija.

 curl -X POST http://httpbin.org/post -vvv > /dev/null 

Galite paprašyti serverio siųsti tik HEAD, o ne visą atsakymą.

 curl -X HEAD -I http://httpbin.org/ 

Note: teisingai sukonfigūruoti / užprogramuoti žiniatinklio serveriai atsakys kitaip nei pranešimas, nes tai yra HEAD užklausa, o ne POST. Bet jis veikia didžiąją laiko dalį.

37
09 мая '16 в 6:09 2016-05-09 06:09 atsakymas duotas zainengineer gegužės 09, 16, 06:09 2016-05-09 06:09

Daug paprastesnis yra tai, ką aš naudoju, kad būtų išvengta trumpų nuorodų - tai yra:

 curl -IL http://bit.ly/in-the-shadows 

... kuris taip pat seka nuorodas.

15
11 марта '16 в 0:18 2016-03-11 00:18 Kaiserio atsakymas kovo 11 d. 16 d. 0:18 2016-03-11 00:18

Nors kiti atsakymai man visose situacijose neveikė, geriausias sprendimas, kurį galėjau rasti (taip pat dirbant su POST ), buvo paimtas iš čia :

curl -vs 'https://some-site.com' 1>/dev/null

13
14 февр. Daniel AR Werner atsakymas 14 vasaris 2016-02-14 12:23 '16 at 12:23 AM 2016-02-14 12:23

Http Gaukite pakankamai gerą, kad gautumėte tik antraštę. „Http GET“ veikia ši komanda:

 curl -I https://stackoverflow.com/ 
0
08 янв. Atsakymas yra shifu.zheng 08 sausis 2019-01-08 11:00 „19, 11:00, 2019-01-08 11:00

Kiti klausimai apie žymes arba Užduoti klausimą