POST HTTP de la requête comment faire pour calculer la longueur du contenu
Je fais un POST HTTP de la requête à un serveur et je suis de la création du corps post manuellement.
Je pense que je fais une erreur avec le contenu de l'en-tête de longueur parce que du côté serveur, et quand je reçois la réponse http au début je voir les en-têtes de réponse http 200 et puis quand dans mon script php j'ai l'impression que le post des paramètres et des noms de fichiers-je obtenir les valeurs correctes, mais avec un peu de cochonneries octets.
Ici est le corps de mon post http:
StringBuffer str = new StringBuffer();
str.append("POST /tst/query.php HTTP/1.1\r\n"
+ "Host: myhost.com\r\n"
+ "User-Agent: sampleAgent\r\n"
+ "Content-type: multipart/form-data, boundary=AaB03x\r\n"
+ "Content-Length: 172\r\n\r\n"
+ "--AaB03x\r\n"
+ "content-disposition: form-data; name=\"asd\"\r\n\r\n123\r\n--AaB03x\r\n"
+ "content-disposition: form-data; name=\"pics\"; filename=\"file1.txt\"\r\n"
+ "Content-Type: text/plain\r\n\r\n555\r\n"
+ "--AaB03x--"
);
Voici la sortie du serveur(ignorer [0.0] - il s'agit de la console où j'ai imprimer le résultat)
[0.0] HTTP/1.1 200 OK
[0.0] Date: Sat, 10 Dec 2011 11:53:11 GMT
[0.0] Server: Apache
[0.0] Transfer-Encoding: chunked
[0.0] Content-Type: text/html
[0.0]
[0.0] 6
[0.0] Array
[0.0]
[0.0] 2
[0.0] (
[0.0]
[0.0] 1
[0.0]
[0.0] 1
[0.0]
[0.0] 1
[0.0]
[0.0] 1
[0.0]
[0.0] 1
[0.0] [
[0.0] 3
[0.0] asd
[0.0] 5
[0.0] ] =>
3
123
1
2
)
0
Et le script php sur le serveur qui est aussi simple que vous le pensez:
<?php
print_r($_POST) ;
?>
OriginalL'auteur gosho_ot_pochivka | 2011-12-10
Vous devez vous connecter pour publier un commentaire.
...Je dirais que c'est la façon dont il devrait être fait
Je pense que c'est le
Transfer-Encoding: chunked
c'est la pagaille, vous, vous avez besoin de "nations unies-chunk" - lireVeuillez modifier la question avec une version littérale de la sortie (dans une section de code) et la source de votre script PHP
J'ai mis à jour la question. Vous avez raison à propos de la segmentation. Est-il un moyen de dire au serveur de renvoyer unchunked ou cela dépend de la configuration du serveur et j'ai de l'analyser et de l'onu-chunk manuellement?
Je ne sais pas d'un moyen de contrôler ce à partir de PHP, vous devez modifier la configuration du serveur. This peut vous aider à trouver une solution acceptable à votre problème.
OriginalL'auteur DaveRandom
HTTP RFC (RFC2626, 14.3)
En d'autres termes, vous devez compter le nombre d'octets (
octets
), à cet effet,\r\n
doivent être considérées comme de 2 octets/bytes.À mon humble avis, '\r\n' séquences comptent comme une seule (1) octet, pas deux. Veuillez voir mon post stackoverflow.com/questions/31406022/....
OriginalL'auteur Filip Roséen - refp