2010-12-15 152 views
3

Existe-t-il un moyen d'ajouter des octets bruts aux paramètres de publication à l'aide de HTTPClient d'Apache? Ma motivation est de diffuser les octets bruts d'un flux dans un encodage particulier, puis de tester ce qu'il advient de ces données quand elles arrivent sur le serveur.Ajout d'octets bruts pour publier des paramètres à l'aide d'Apache HttpClient

edit: J'ai remarqué qu'Apache avait une méthode obsolète à ajouter au corps de la requête en utilisant un inputtream, donc je pourrais en faire un ByteArrayInputStream, mais y a-t-il quelque chose de mieux/non déprécié?

Répondre

1

(Vous ne précisaient pas, donc je suppose que vous utilisez la version Apache HttpClient 4.x)

Je ne pense pas que vous pouvez octets bruts « ajouter » à un des paramètres POST de demande normalement créer.

Cependant, il devrait être possible de créer un PostMethod avec un HttpEntity qui consiste en des paramètres légitimes, plus quelques éléments codés incorrectement. Vous devrez peut-être effectuer la mise en forme et l'encodage du contenu vous-même, mais vous pourrez peut-être raccourcir en mettant les paramètres valides dans un UrlEncodedFormEntity, puis en utilisant la méthode writeTo pour extraire la version formatée/encodée en ByteArrayOutputStream. Après avoir piraté les octets de contenu, transformez-les en instance ByteArrayEntity avec le type de contenu et les paramètres de codage appropriés.

Ce sera salissant ...