
Preciso de ajuda para descobrir a solicitação cURL necessária para enviar os seguintes dados para um URL.
{"requestid":"555555",
"partnermatchid":"10000-000-0000-0000-000",
"usercontext":{"ipaddressmasked":"XXX.XXX.X.XXX",
"useragent":"mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.10 (khtml, like gecko) chrome/28.0.1500.95 safari/537.36",
"country":"us"},
"pagecontext":{"pagetypeid":"2","numslots":"3"},
"istest":false}
Meu principal problema é que não consigo descobrir como formatar a carga acima para ser enviada corretamente para um URL. Até agora, tenho utilizado os comandos -d
e . -X POST
Estou usando o Git Bash.
Agradeço sua ajuda e contribuição.
Responder1
Deveria ser algo assim:
echo '{"requestid":"555555",
"partnermatchid":"10000-000-0000-0000-000",
"usercontext":{"ipaddressmasked":"XXX.XXX.X.XXX",
"useragent":"mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.10 (khtml, like gecko) chrome/28.0.1500.95 safari/537.36",
"country":"us"},
"pagecontext":{"pagetypeid":"2","numslots":"3"},
"istest":false}' | curl --data-binary @- -H "Content-Type: text/json" <URL>
As partes interessantes:
- O
echo
início é apenas para colocar o conteúdo do corpo no canalcurl
. Observe o uso de aspas simples para evitar que o bash interprete qualquer uma das aspas ou qualquer coisa no JSON. - O uso de
--data-binary
é dizercurl
para enviar o corpo exatamente como está, sem modificações. A@-
parte diz para ler do stdin (neste caso, o pipe doecho
. - O `-H "Content-Type: text/json" pode não ser necessário, mas os servidores geralmente ficam irritados se houver um corpo de solicitação e o tipo de conteúdo não for especificado.
- Eu fiznãoinclua um
User-Agent
cabeçalho. Você tem uma string UA no JSON, então esperamos que o servidor não seja exigente quanto ao cabeçalho UA, mas você pode substituir facilmentecurl
a string UA padrão de se desejar. <URL>
é, obviamente, o URP para o qual você deseja enviar seu POST. Observe que se for um URL HTTPS e o certificado não for confiávelcurl
, você precisará informarcurl
para usar o modo inseguro (-k
sinalizador).