Hoe kan ik standaard headers verwijderen die cURL verzendt?

Curl voegt standaard headers toe zoals Content-typeen User-Agent. Normaal gesproken is dat een goede zaak, maar ik probeer te testen wat onze server doet als die headers ontbreken.

Mijn probleem is met de Content-typeheader. Als het ontbreekt, gaat de server er correct vanuit dat de gebruiker JSON heeft verzonden. Curl voegt echter de ontbrekende header toe en gaat er ten onrechte van uit dat de inhoud die ik plaats application/x-www-form-urlencoded. Het stuurt ook een Accept-header van /.

Ik veronderstel dat dat een aardig standaardgedrag is, maar ik zou eigenlijk willen dat het geen headers verstuurt die ik niet heb gespecificeerd. Is daar een optie voor?

curl -v -X POST 'https://example.com' -d '{...}'
> User-Agent: curl/7.37.1
> Host: domain.com
> Accept: */*
> Content-Length: 299
> Content-Type: application/x-www-form-urlencoded

Antwoord 1, autoriteit 100%

Gebruik de vlag -Hmet de koptekst die u wilt verwijderen en geen inhoud na de :

-H, --header LINE   Custom header to pass to server (H)

Voorbeeld

-H 'User-Agent:'

Dit maakt het verzoek zonderde User-Agent-header (in plaats van het te verzenden met een lege waarde)


Antwoord 2, autoriteit 24%

Het lijkt erop dat curl3 headers verzendt. Om een ​​verzoek zonder hen te doen, kunt u de argumenten toevoegen:

-H 'User-Agent:' -H 'Accept:' -H 'Host:'

+1 aan @cmlndz antwoord terwijl hij uitlegt hoe je een enkele header verwijdert.

Je kunt controleren welke headers daadwerkelijk worden verzonden door -vtoe te voegen.

Other episodes