Comment puis-Jersey-le client et le Client HTTP Apache comparer?
Tout d'abord, je ne suis pas d'essayer de démarrer une flamme de guerre ici. Je sais Jersey assez bien, mais n'ont guère utilisé httpclient.
Quelles sont les principales différences entre le jersey du client et Apache httpclient? Dans quels domaines est-ce mieux que les autres? Est-il un bon tableau de comparaison quelque part? Celui qui fonctionne mieux avec de gros fichiers (dire 2048 MO)?
Merci beaucoup pour vos commentaires!
Vous devez vous connecter pour publier un commentaire.
Ces deux choses ne devraient probablement pas être comparées directement. Jersey est un RESTE-client, avec JAX-RS de mise en œuvre, propre API fluent et d'un puissant filtre de la pile. Client Http Apache est un serveur HTTP-client, parfait dans la gestion des détails de bas niveau comme les délais d'attente, complexe proxy routes et de la connexion des bureaux de vote. Ils agissent sur les différents niveaux de votre pile de protocole.
Lorsque vous utilisez Jersey il y a toujours une sorte de client HTTP backend impliqués. Pas donné le backend explicitement, Maillot utilisera
HttpUrlConnection
comme un backend par défaut.Jersey avec HttpUrlConnection backend exemple:
Maillot avec un Client Http Apache backend exemple:
Veuillez noter que l'utilisation de Gestionnaire dans le dernier exemple. C'est un élément essentiel de l'intégration de l'abstraction pour le Jersey à intégrer et à utiliser les différents filtres de sortie. Premier exemple utilise
URLConnectionClientHandler
de profondeur sous le capot.Parlant de la performance et de fonctionnalités, il fait peu de sens de comparer Client Http Apache avec Jersey. On peut vouloir comparer les différentes Jersey backends ici, comme le Jersey est simplement un habillage de l'API. Je voudrais mettre en évidence certaines des principales différences entre HttpUrlConnection et Http Apache Client basé sur ma propre expérience:
HttpUrlConnection
HttpUrlConnection
basée sur la mise en œuvre est difficile à maintenir et à étendre.Client Http Apache
HttpUrlConnection
. La Version 4.1 contient de nombreuses améliorations de performance et effectue une façon meilleure qu'elle ne l'équivalent deHttpUrlConnection
également à l'intérieur de la mutualisation, mais vous n'avez pas les outils pour personnaliser le contenu ou la date de piscine, pas de installations de surveillance pour vérifier l'état du pool.Gardez à l'esprit, qu'il est également possible d'utiliser d'autres serveurs d'arrière-plan (par exemple, pour les non-blocage de clients) avec Jersey si vous avez une bonne
com.sun.jersey.api.client.ClientHandler
mise en œuvre.HttpUrlConnection
qui est une mauvaise idée de les utiliser pour traiter des fichiers volumineux comme il est mappé en mémoire, ce qui conduit à de mauvaises performances. Je ne suis pas sûr si je suis entièrement d'accord avec l'affirmation que le Maillot est juste une API REST client. Le Maillot Client est également un client HTTP. Vous disposez de tous les cours d'eau, mais - oui - il s'enroule tout autour de HttpUrlConnection par défaut. Peut-être que je suis toujours en manque de quelque chose...?jersey-apache-client4
ne semble pas avoir suffisamment nouvelle version. Aussi votre code en matière deClient client = new Client(new ApacheHttpClient4Handler...)
bits est incorrect ou périmé. Pensez-vous que vous pourriez peut-être mettre à jour cette? Merci beaucoup!