J'écris un serveur Web HTTP. Mon serveur doit gérer les demandes multipart Http. Dans ma précédente implémentation, j'extrait les données à l'aide de l'en-tête de longueur de contenu présent dans chaque partie de la requête. Le client que j'utilisais donne un en-tête de longueur de contenu avec chaque partie de pièce (fichier) dans la requête multipart.Comment extraire des données d'une demande Http en plusieurs parties?
Mais un autre client n'indique pas la longueur de contenu de chaque fichier. Dans mon implémentation, j'utilise l'en-tête content-length pour extraire autant d'octets et les enregistrer dans un fichier.
Dites-moi comment extraire les données maintenant.
Les en-têtes que je reçois sont maintenant:
POST xxxxxxxxxxxxxxxxxxxxxxx¤tTab=PHOTOxxxxxxxxxxxxxxxx HTTP/1.1
Content-Length: 6829
Content-Type: multipart/form-data; boundary=SnlCg9JqTpQIl6t_mPzByTjZ8bD24kUj; charset=UTF-8
Host: host
Connection: Keep-Alive
User-Agent: Apache-HttpClient/xxxxxxxx
Accept-Encoding: gzip
--SnlCg9JqTpQIl6t_mPzByTjZ8bD24kUj
Content-Disposition: form-data; name="file"; filename="imagesCA5L2CL6_jpg(2)_jpg.jpg"
Content-Type: photo/jpg
**Some Data byte array**
--SnlCg9JqTpQIl6t_mPzByTjZ8bD24kUj--
Dans cette demande, il est maintenant en-tête de longueur du contenu dans les données de la pièce.
EDIT:
Plus tôt ce client utilisé pour envoyer en-tête de longueur du contenu dans chaque partie. Mais pour une raison quelconque, il ne l'envoie plus. Quelqu'un peut-il suggérer une raison pour cela?
grâce
Avez-vous essayé HttpContext.Current.Request.Files [0] .InputStream; ? – Popeye
Je n'utilise pas de classes C# .. Je reçois des données brutes de sockets que je dois analyser. – vijay053