Era a propriedade "Content-Length" que estava faltando no cabeçalho e o servidor achou que era obrigatório, o que eu acho que não deveria ser obrigatório?
Depois de adicionar o "Content-Length" ao cabeçalho, funciona como um encanto.
Eu estou tentando fuzz um servidor usando o framework fuzzing Sulley.
Eu observo o seguinte fluxo no Wireshark. O erro fala sobre um problema com a análise JSON, no entanto, quando eu tento a mesma solicitação HTTP POST usando a extensão Postman do Google Chrome, ela é bem-sucedida.
Alguém pode, por favor, explicar o que poderia estar errado sobre esta solicitação HTTP POST? O JSON parece válido.
POST /restconf/config HTTP/1.1
Host: 127.0.0.1:8080
Accept: */*
Content-Type: application/yang.data+json
{ "toaster:toaster" : { "toaster:toasterManufacturer" : "Geqq", "toaster:toasterModelNumber" : "asaxc", "toaster:toasterStatus" : "_." }}
HTTP/1.1 400 Bad Request
Server: Apache-Coyote/1.1
Content-Type: */*
Transfer-Encoding: chunked
Date: Sat, 07 Jun 2014 05:26:35 GMT
Connection: close
152
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf">
<error>
<error-type>protocol</error-type>
<error-tag>malformed-message</error-tag>
<error-message>Error parsing input: Root element of Json has to be Object</error-message>
</error>
</errors>
0
Era a propriedade "Content-Length" que estava faltando no cabeçalho e o servidor achou que era obrigatório, o que eu acho que não deveria ser obrigatório?
Depois de adicionar o "Content-Length" ao cabeçalho, funciona como um encanto.
Com base na sua mensagem, ela deve ser uma linha em branco antes do corpo da solicitação POST. Você pode tentar adicionar um?
Como é, é possível que o servidor veja este pedido sem corpo e com um cabeçalho como:
{ "toaster:toaster" : value
que explicaria o erro.
Talvez seja por causa do cabeçalho "Content-Type". Se o servidor estiver configurado para aceitar apenas "aplicativo / json", ele poderá retornar esse código de erro. Embora deva devolver "415 tipo de suporte não suportado" de acordo com a RFC2616 .
Este é apenas um palpite, mas você pode tentar mudar o cabeçalho "Content-Type" para "application / json".
Tags json http http-headers request