2009-08-24 10 views
1

J'utilise Apache HttpClient 3.x pour contacter un Big IP qui redirigera ensuite ma demande vers l'une des machines 1-N. Nous avons besoin de savoir laquelle des machines N a détecté la demande, et je ne sais pas comment obtenir cette information. J'ai regardé les en-têtes de réponse sans succès, donc je me demande si cette information est réellement fournie n'importe où? Y a-t-il une classe d'aide/utilitaire que je peux utiliser pour obtenir des métadonnées supplémentaires?Puis-je obtenir le nom/ip du serveur de réponse en utilisant Apache HttpClient?

Merci.

+0

vous êtes dans le contrôle des serveurs 1-N qui est le traitement de votre demande? –

+0

Pas notre groupe personnellement, mais tout est interne afin que nous puissions leur demander d'ajouter quelque chose à la réponse. Je suppose que je cherchais s'il y avait un moyen d'éviter cela si possible. –

+0

Je pense que les en-têtes de réponse vont être votre seule option AFAIK. –

Répondre

1

Si la demande est redirigée et que vous avez besoin du nouvel emplacement, vous devez indiquer setFollowRedirects(false) sur la méthode et gérer vous-même la redirection. Après l'envoi de la demande, vérifiez getStatusCode() pour 302 et getResponseHeader("Location") pour la nouvelle adresse. Remplacez l'adresse par setURI() et envoyez-la à nouveau.

+0

Wow, ça marcherait probablement. Je ne sais pas si je veux hériter de cette responsabilité de redirection, mais à moins que quelqu'un d'autre puisse trouver quelque chose de mieux, je vais marquer cela comme une réponse dans un jour ou deux. –

0

Ou vous pouvez simplement utiliser mod_headers et insérer un identifiant unique d'en-tête sur chacun de vos serveurs Apache httpd ;-)

Questions connexes