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
?
forms
web-services
rest
postman
Rohan
fonte
fonte
binary
.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
fonte
Isso explica melhor: documentos do Postman
ATUALIZAR
Conforme apontado por VKK , a especificação WHATWG diz que urlencoded é o tipo de codificação padrão para formulários.
fonte
Content-Type: application/json
cabeçalho; e dados brutos inseridos como json como{foo: bar}
com o mesmoContent-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: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.
fonte
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:
dados do formulário
Cabeçalho
Corpo
x-www-form-urlencoded
Cabeçalho
Corpo
Texto bruto / sem formatação
Cabeçalho
Corpo
Raw json
Cabeçalho
Corpo
fonte