“411 Longueur Requise” après une demande de Client HTTP
Je suis en train de travailler sur un programme Java qui implémente un Client HTTP.
Je l'ai tester l'envoi de requêtes à un serveur. GET, POST et SUPPRIMER les demandes de travail sur ok.
Par exemple, après une requête POST, j'obtiens une sortie
Data extracted:
{"status":{"message":"ok"}}
et la base de données reflète les changements apportés.
Après une requête PUT, cependant j'ai le balisage html d'une page web indiquant une erreur.
Data extracted:
<html>
<head><title>411 Length Required</title></head>
<body bgcolor="white">
<center><h1>411 Length Required</h1></center>
<hr><center>nginx/1.2.6</center>
</body>
</html>
et, en conséquence, aucune modification dans la base de données.
J'ai trouvé que cela peut avoir quelque chose à voir avec le Contenu de l'en-tête de Longueur, mais je ne suis pas sûr.
Après avoir essayé d'ajouter cette en-tête de mon programme attend une minute, puis déclenche une exception informant qu'il n'a pas pu traiter la réponse du serveur.
Je peux également fournir le code ou la trace de la pile si nécessaire.
setHeader("Content-Length", "" + file.length())
resp. setContentLength((int)file.length());
.Je ne veux pas de télécharger un fichier. Juste essayer de passer une URL avec un tas de paramètres pour mettre à jour la base de données
Contenu de longueur 0 @Sachin dit à juste titre.
Étaient confrontés au même problème avec google app engine jetée exécuté localement. Pour moi, le réglage de
Content-Length
seul ne fonctionne pas (j'ai été faire même 411 erreur), donc j'ai dû mettre un mannequin de contenu à la demande, afin de le faire fonctionner.OriginalL'auteur Limbo Exile | 2013-03-25
Vous devez vous connecter pour publier un commentaire.
Oui, la question relative à la
Content-Length
. Erreur HTTP 411 signifieAinsi, lorsque vous envoyez un vide
RequestBody
POST/PUT Méthode, puis vous devez également envoyerContent-Length:0
. Il faut donc ajouter cet en-tête dans votre demande. Je ne pense pas que cet en-tête sera la cause d'un problème que vous avez ajouté dans l'Objet de Requête.Data extracted: {"status":{"message":"Content type 'application/octet-stream' not supported"}}
et toujours pas de changements dans la base de donnéesC'est un autre problème qui est lié au type de Contenu. Il peut être possible que votre serveur est de ne pas signaler le bon de types mime ou non pris en charge ce type de contenu
J'ai contacté le serveur et ils m'ont informé qu'ils ont testé la même METTRE la demande et il fonctionne avec la mise en œuvre de Client HTTP. Le truc c'est que je utilisez un Java plate-forme ME et je suppose il y a un bug de ma version de Client HTTP. Ce que je ne peut pas comprendre, c'est comment ça marche avec la POSTE alors?
Essayez d'obtenir
Content-Type
valeur d'en-Tête de celui qui réussi à mettre la demande. Je pense qu'il d'une simple erreur de valeurs d'en-Tête dans votre demandeOriginalL'auteur Sachin