2015-07-08 10 views
10

Curl aggiunge per impostazione predefinita intestazioni quali Content-type e User-agent. Normalmente è una buona cosa, ma sto provando a testare cosa fa il nostro server quando mancano quelle intestazioni. Il mio problema è con l'intestazione del tipo di contenuto. Se manca, il server presume correttamente che l'utente abbia inviato json. Tuttavia, il curl aggiunge effettivamente l'intestazione mancante e assume erroneamente che il contenuto che sto postando application/x-www-form-urlencoded. Invia anche un'intestazione Accept di /. Suppongo che sia un buon comportamento predefinito, ma fondamentalmente mi piacerebbe che non mandasse intestazioni che non ho specificato. C'è un'opzione per questo?Come rimuovere le intestazioni predefinite che arricciano le mandate

curl -v -X POST 'https://domain.com' -d '{...}' 

> User-Agent: curl/7.37.1 
> Host: domain.com 
> Accept: */* 
> Content-Length: 299 
> Content-Type: application/x-www-form-urlencoded 

risposta

17

Usa -H bandiera con l'intestazione che si desidera rimuovere e nessun contenuto dopo la :

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

Esempio

-H 'User-Agent:' 

Questo renderà la richiesta senza il User-Agent intestazione (invece di inviarlo con un valore vuoto)

+1

Per rimuovere le intestazioni proxy, sostituire -H per --proxy-header, ad es. '--proxy-header" Proxy-Connection: "' –

+0

Usando la shell standard di Windows ('cmd.exe') ho dovuto sostituire le virgolette singole con virgolette doppie (o rimuoverle del tutto). – MrWhite

+0

'-H 'User-Agent:'' rimuove l'intestazione come previsto (nessuna intestazione e nessun valore verrà inviato) ma attenzione con '-H 'Content-Type:'' che ** invierà un'intestazione con valore vuoto ** . È strano il diverso comportamento del comando di arricciatura. – mikep

2

Sembra che curl invia 3 intestazioni. Per fare una richiesta senza di loro si può fare:

curl 172.20.11.100:8080/healthz -v -H 'User-Agent:' -H 'Accept:' -H 'Host:' 

+1 a @cmlndz risposta come spiega come rimuovere un singolo colpo di testa.

È possibile verificare quali intestazioni sono effettivamente inviate aggiungendo l'opzione -v come mostrato sopra.

Problemi correlati