Estou usando a extensão Postman Chrome para testar um serviço da web.
Existem três opções disponíveis para entrada de dados.
Eu acho que o raw
é para o envio de JSON.
Qual é a diferença entre os outros dois form-data
e x-www-form-urlencoded
?
Estou usando a extensão Postman Chrome para testar um serviço da web.
Existem três opções disponíveis para entrada de dados.
Eu acho que o raw
é para o envio de JSON.
Qual é a diferença entre os outros dois form-data
e x-www-form-urlencoded
?
Respostas:
Esses são os diferentes tipos de conteúdo de formulário definidos pelo W3C. Se você deseja enviar dados de texto / ASCII simples, o x-www-form-urlencoded funcionará. Esse é o padrão.
Mas se você tiver que enviar texto não ASCII ou dados binários grandes, os dados do formulário são para isso.
Você pode usar o Raw se desejar enviar texto sem formatação, JSON ou qualquer outro tipo de string. Como o nome sugere, o Postman envia seus dados brutos de string, sem modificações. O tipo de dados que você está enviando pode ser definido usando o cabeçalho do tipo de conteúdo na lista suspensa.
O binário pode ser usado quando você deseja anexar dados não textuais à solicitação, por exemplo, um arquivo de vídeo / áudio, imagens ou qualquer outro arquivo de dados binários.
Consulte este link para obter mais informações: Formulários em documentos HTML
Isso explica melhor: documentos do Postman
Organismo de solicitação
Ao construir solicitações, você lidaria muito com o editor do corpo da solicitação. O Postman permite enviar quase qualquer tipo de solicitação HTTP (se você não puder enviar algo, avise-nos!). O editor do corpo é dividido em 4 áreas e possui controles diferentes, dependendo do tipo de corpo.
dados do formulário
multipart / form-data é a codificação padrão que um formulário da web usa para transferir dados.Isso simula o preenchimento de um formulário em um site e o envio. O editor de dados do formulário permite definir pares de chave / valor (usando o editor de valor da chave) para seus dados. Você também pode anexar arquivos a uma chave. Observe que, devido a restrições da especificação HTML5, os arquivos não são armazenados no histórico ou nas coleções. Você precisaria selecionar o arquivo novamente no momento do envio de uma solicitação.codificado por url
Essa codificação é igual à usada nos parâmetros de URL. Você só precisa inserir pares de chave / valor e o Postman codificará as chaves e os valores corretamente. Observe que você não pode carregar arquivos através deste modo de codificação. Pode haver alguma confusão entre os dados do formulário e o código da URL, portanto, verifique primeiro sua API.
cru
Uma solicitação bruta pode conter qualquer coisa. O Postman não toca na sequência inserida no editor bruto, exceto substituindo as variáveis de ambiente. Tudo o que você coloca na área de texto é enviado com a solicitação. O editor bruto permite definir o tipo de formatação junto com o cabeçalho correto que você deve enviar com o corpo bruto. Você também pode definir o cabeçalho do tipo de conteúdo manualmente. Normalmente, você enviaria dados XML ou JSON aqui.
binário
dados binários permitem enviar coisas que você não pode inserir no Postman. Por exemplo, arquivos de imagem, áudio ou vídeo. Você também pode enviar arquivos de texto. Conforme mencionado anteriormente na seção de dados do formulário, você precisaria anexar novamente um arquivo se estiver carregando uma solicitação através do histórico ou da coleção.
ATUALIZAR
Conforme apontado por VKK , a especificação WHATWG diz que urlencoded é o tipo de codificação padrão para formulários.
O valor inválido padrão para esses atributos é o estado application / x-www-form-urlencoded. O valor padrão ausente para o atributo enctype também é o estado application / x-www-form-urlencoded.
Content-Type: application/json
cabeçalho; e dados brutos inseridos como json como {foo: bar}
com o mesmo Content-Type: application/json
cabeçalho?
multipart / form-data
Nota. Consulte o RFC2388 para obter informações adicionais sobre uploads de arquivos, incluindo problemas de compatibilidade com versões anteriores, o relacionamento entre "dados de várias partes / dados do formulário" e outros tipos de conteúdo, problemas de desempenho etc.
Consulte o apêndice para obter informações sobre questões de segurança para formulários.
O tipo de conteúdo "application / x-www-form-urlencoded" é ineficiente para enviar grandes quantidades de dados binários ou texto contendo caracteres não ASCII. O tipo de conteúdo "dados de várias partes / formulário" deve ser usado para enviar formulários que contêm arquivos, dados não ASCII e dados binários.
O tipo de conteúdo "multipart / form-data" segue as regras de todos os fluxos de dados MIME de várias partes, conforme descrito no RFC2045 . A definição de "multipart / form-data" está disponível no registro [IANA].
Uma mensagem "multipart / form-data" contém uma série de partes, cada uma representando um controle bem-sucedido. As peças são enviadas ao agente de processamento na mesma ordem em que os controles correspondentes aparecem no fluxo de documentos. Os limites das peças não devem ocorrer em nenhum dos dados; como isso é feito está fora do escopo desta especificação.
Como em todos os tipos MIME de várias partes, cada parte possui um cabeçalho "Content-Type" opcional que padroniza como "text / plain". Os agentes do usuário devem fornecer o cabeçalho "Content-Type", acompanhado por um parâmetro "charset".
application / x-www-form-urlencoded
Este é o tipo de conteúdo padrão. Os formulários enviados com este tipo de conteúdo devem ser codificados da seguinte maneira:
Os nomes e valores de controle são escapados. Os caracteres de espaço são substituídos por +', and then reserved characters are escaped as described in [RFC1738], section 2.2: Non-alphanumeric characters are replaced by
% HH ', um sinal de porcentagem e dois dígitos hexadecimais que representam o código ASCII do caractere. As quebras de linha são representadas como pares "CR LF" (ou seja, %0D%0A').
The control names/values are listed in the order they appear in the document. The name is separated from the value by
= 'e pares nome / valor são separados um do outro por `e'.
application/x-www-form-urlencoded
o corpo da mensagem HTTP enviada ao servidor é essencialmente uma string de consulta gigante - os pares nome / valor são separados pelo e comercial (&) e os nomes são separados dos valores pelo símbolo de igual (=). Um exemplo disso seria:
MyVariableOne=ValueOne&MyVariableTwo=ValueTwo
O tipo de conteúdo "application / x-www-form-urlencoded" é ineficiente para enviar grandes quantidades de dados binários ou texto contendo caracteres não ASCII. O tipo de conteúdo "dados de várias partes / formulário" deve ser usado para enviar formulários que contêm arquivos, dados não ASCII e dados binários.
Aqui estão alguns exemplos adicionais para ver o texto bruto que Postman passa na solicitação. Você pode ver isso abrindo o console do Postman:
Cabeçalho
content-type: multipart/form-data; boundary=--------------------------590299136414163472038474
Corpo
key1=value1key2=value2
Cabeçalho
Content-Type: application/x-www-form-urlencoded
Corpo
key1=value1&key2=value2
Cabeçalho
Content-Type: text/plain
Corpo
This is some text.
Cabeçalho
Content-Type: application/json
Corpo
{"key1":"value1","key2":"value2"}
binary
.