Skip to content

Instantly share code, notes, and snippets.

@claudiojcas
Forked from subfuzion/curl.md
Last active October 28, 2019 13:17
Show Gist options
  • Save claudiojcas/b9b45b5054702b7e339b488ac4e8b581 to your computer and use it in GitHub Desktop.
Save claudiojcas/b9b45b5054702b7e339b488ac4e8b581 to your computer and use it in GitHub Desktop.
curl POST examples

Sobre o comando curl

Parametros mais comuns

Parametro Descrição
-#, --progress-bar Faz com que a exibição seja uma barra de progresso simples em vez do medidor padrão mais informativo.
-b, --cookie <name=data> Forneça o cookie com solicitação. Se =, especifica o arquivo de cookie a ser usado (consulte -c).
-c, --cookie-jar Arquivo para salvar os cookies de resposta.
-d, --data Envie dados especificados na solicitação POST. (Detalhes fornecidos abaixo.)
-f, --fail Falha silenciosamente (não produza o formulário de erro HTML se retornado).
-F, --form <name=content> Envie dados do como campos de formulário.
-H, --header Cabeçalhos a serem fornecidos com a solicitação.
-i, --include Inclua cabeçalhos HTTP na saída.
-I, --head Buscar apenas cabeçalhos.
-k, --insecure Permita que conexões inseguras sejam bem-sucedidas.
-L, --location Siga redirecionamentos.
-o, --output Grava a saída em . Pode usar --create-dirs em conjunto com isso para criar qualquer diretório especificado no caminho -o.
-O, --remote-name Grave a saída no arquivo nomeado como o arquivo remoto (apenas grava no diretório atual).
-s, --silent Modo silencioso. Use com -S para forçá-lo a mostrar erros.
-v, --verbose Forneça mais informações (úteis para depuração).
-w, --write-out Faça as informações de exibição de curl no stdout após uma transferência concluída. Consulte a página do manual para obter mais detalhes sobre variáveis ​​disponíveis. Maneira conveniente de forçar o curl a acrescentar uma nova linha à saída: -w"\n" (pode adicionar para ~/.curlrc).
-X <método>, --request O método de solicitação a ser usado.

POST

Ao enviar dados por uma solicitação POST ou PUT, dois formatos comuns (especificados no cabeçalho Content-Type) são:

  • application/json
  • application/x-www-form-urlencoded

Muitas APIs aceitarão os dois formatos; portanto, se você estiver usando curl na linha de comando, pode ser um pouco mais fácil usar o formato codificado por url em vez do json, porque   * o formato json requer várias citações extras   * curl envia o formulário url codificado por padrão, portanto, para json, o cabeçalho Content-Type deve ser explicitamente definido

Esta lista fornece exemplos para usar os dois formatos, incluindo como usar arquivos de dados de amostra em qualquer formato com suas solicitações curl.

Usando curl

Para enviar dados com solicitações POST e PUT, estas são opções comuns curl:

  • Tipos de request

    • -X POST
    • -X PUT
  • Tipos de content header

    • -H "Content-Type: application/x-www-form-urlencoded"
    • -H "Content-Type: application/json"
  • Formas de data

    • forma de urlencoded: -d "param1=value1&param2=value2" ou -d @data.txt
    • forma de json: -d '{"key1":"value1", "key2":"value2"}' ou -d @data.json

Exemplos

POST form-url via application/x-www-form-urlencoded

application/x-www-form-urlencoded é o padrão:

curl -d "param1=value1&param2=value2" -X POST http://localhost:3000/data

explicitando:

curl -d "param1=value1&param2=value2" -H "Content-Type: application/x-www-form-urlencoded" -X POST http://localhost:3000/data

com arquivo de dados:

curl -d "@data.txt" -X POST http://localhost:3000/data

POST json via application/json

curl -d '{"key1":"value1", "key2":"value2"}' -H "Content-Type: application/json" -X POST http://localhost:3000/data

com arquivo de dados

curl -d "@data.json" -X POST http://localhost:3000/data
{
"key1":"value1",
"key2":"value2"
}
field1=value1&field2=value2
{
"name": "postdemo",
"version": "1.0.0",
"scripts": {
"start": "node server.js"
},
"dependencies": {
"body-parser": "^1.15.0",
"express": "^4.13.4"
}
}
var app = require('express')();
var bodyParser = require('body-parser');
app.use(bodyParser.json()); // para analisar 'application/json'
app.use(bodyParser.urlencoded({ extended: true })); // para analisar 'application/x-www-form-urlencoded'
app.post('/data', function (req, res) {
console.log(req.body);
res.end();
});
app.listen(3000);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment