10
votes

Obtenir le client local dans une demande de maillot

Quelle est la meilleure façon la meilleure et plus portable d'obtenir le local client dans le contexte d'une demande de jersey (Jax-RS)? J'ai le code suivant: xxx

Veuillez supposer que la "demande" est faite par certains code JavaScript dans un navigateur, en appelant window.location = ...;


1 commentaires

Pouvez-vous décrire plus sur le problème?


5 Réponses :


10
votes

locale locale = demande.getlocale ();


0 commentaires


3
votes

Utilisez l'en-tête HTTP pour cela. Pour demander la valeur numérique dans la Decimal locale américaine, vous pouvez demander comme celui-ci:

Obtenir / métrique / 007 / Taille Langue d'acceptation: en-nous

à partir du code: xxx


0 commentaires

2
votes

Les données de langue / locale peuvent être effectuées de différentes manières en fonction de l'objectif final. Selon la question, je crois que la solution la plus appropriée est la suivante: xxx pré>

Une autre alternative potentielle utilise un paramètre de requête de langue: p> xxx pré>

ou Alternativement, le paramètre "Accepter-Language": P>

@GET
public Response myRequest( @HeaderParam( "Accept-Language" ) String acceptLanguage )
{
   ...
}


0 commentaires

0
votes

AS UTILISE3774109 Réponse, utilisez l'en-tête HTTP CODE> HTTP-LANGUE. Bien qu'il soit utilisé dans la mise en œuvre de Jersey, l'interface javax.servlet.http.httpservlettrequest code> ne fait pas partie de l'API JAX-RS. Un moyen plus propre d'obtenir la langue acceptée préférée serait:

@GET
@Produces("text/html")
@Path("/myrequest")
public Response myRequest(@Context HttpHeaders headers) {
    Locale locale = headers.getAcceptableLanguages().get(0);
    ...
}


0 commentaires