2 votes

Comment analyser HTTP de manière asynchrone en Java (client HTTP peut-être)

J'ai lu plusieurs questions stackoverflow incluant

Comment analyser une requête HTTP en Java?

qui renvoie à httpcomponents sur apache qui semble prometteur, mais lorsque vous recevez des octets de manière asynchrone, vous n'obtenez pas toujours la requête complète donc j'ai besoin de quelque chose que je puisse appeler comme

requestWriter.fillBuffer ET il semblait qu'ils avaient cela mais maintenant cela semble ne plus être là

http://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/impl/io/HttpRequestParser.html

ET ensuite j'aurais besoin d'une valeur de retour de cette fonction pour me dire que l'analyse de la requête HTTP est complète (complète signifiant qu'elle contient les octets du corps stockés quelque part en fonction de l'en-tête ContentLength et de tout le reste)

Quelqu'un a un exemple de cela sur le web. Je continue de vouloir faire cela et de rechercher mais j'ai finalement craqué et décidé de demander.

1voto

Brian Roach Points 43787

Je n'ai jamais essayé avec les trucs d'apache.

Vous pourriez être mieux servi en regardant netty - http://www.jboss.org/netty

Plus précisément, l'exemple qu'ils donnent pour construire un client http asynchrone: http://docs.jboss.org/netty/3.2/xref/org/jboss/netty/example/http/snoop/package-summary.html

Vous remarquerez qu'ils ont la gestion du chunking intégrée.

Ou peut-être l'une des bibliothèques de clients HTTP construites dessus trouvées ici: http://www.jboss.org/netty/related-projects

Si vous êtes coincé à utiliser le client http d'apache, faites-le moi savoir et je supprimerai ce message.

Édition pour ajouter: Notez que leur site principal se trouve maintenant à http://netty.io mais il est souvent lent à répondre, ou ne répond pas du tout, comme c'était le cas lorsque j'ai posté ceci)

1voto

0voto

Gabriel Sosa Points 4801

As-tu jeté un coup d'œil à async-http-client ? ça semble prometteur. Je ne pense pas que cela fonctionnera pour toi tel quel mais je le vois comme un bon point de départ.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X