2011-10-30 4 views
2

Je veux changer de type de contenu mais ça ne marche pas ... pas vrai? code:Comment définir le type de contenu correctement?

HttpURLConnection conn=(HttpURLConnection)url.openConnection(); 
    conn.setRequestProperty("Content-Type", "text/plain; charset=utf-8"); 

    System.out.println(conn.getContentType()); 

la sortie n'est pas "text/plain; charset = utf-8" ... quelque chose de mal? Merci

+0

Quel type d'objet est 'conn'? Essayez-vous de modifier la sortie 'Content-Type' dans le navigateur à partir d'une JSP? – laz

+0

oh ... désolé, je vais éditer ... attendre – user996505

Répondre

3

La valeur getContentType() renvoie la valeur de l'en-tête Content-Type de la réponse, et non la valeur définie dans la demande. Voir le Javadoc I lié à. Qu'est-ce que vous essayez de faire exactement?

+0

je veux poster une URL .. j'utilise "conn.setRequestProperty (" Content-Type "," texte/plain; charset = utf-8 ");" pour définir le type de contenu html des serveurs ... ai-je fait une erreur? – user996505

+2

Cela définit le 'Content-Type' de la requête que vous envoyez. Vous ne pouvez pas contrôler directement le 'Content-Type' de la réponse du serveur à moins que la ressource de cette URL ne fournisse un mécanisme permettant de le faire. – laz

3

Comme le souligne correctement Laz, définir Content-Type sur la demande sortante ne va pas contrôler le Content-Type vous allez revenir sur la réponse. Si vous avez un serveur assez intelligent pour contrôler dynamiquement le Content-Type, la manière correcte d'en demander une spécifique est via un Accept header.

Le champ Accepter l'en-tête de requête peut être utilisé pour spécifier certains types de support acceptables pour la réponse. L'exemple

Accept: audio/*; q=0.2, audio/basic 

doit être interprété comme « je préfère audio/basic, mais me envoyer tout type audio si ce dernier est le meilleur disponible après une minoration de 80% de la qualité. »

+0

Notez que la plupart des services auxquels vous pouvez parler via HTTP ne le supporteront probablement pas à moins qu'ils ne le réclament spécifiquement. Vous devez concevoir votre service pour le supporter (ou utiliser un framework qui le fait). –

Questions connexes