J'essaie d'utiliser un java.net.HttpURLConnection pour faire une requête HTTP à un serveur. L'un des en-têtes HTTP que je dois envoyer est "Via". Dans mon code il y a quelque chose comme ceci:HttpURLConnection ne me laisse pas définir l'en-tête "Via"
connection.addRequestProperty("X-test", "test_header_contents"); // just a sanity test
connection.addRequestProperty("Via", "via_header_contents");
Lorsque j'utilise un renifleur de paquets, je peux voir que l'en-tête de test traverse mais par tête n'est pas. Je sais que Via est un en-tête « restreint », donc j'ajouté cette ligne:
System.setProperty("sun.net.http.allowRestrictedHeaders", "true");
Cette ligne travaillé quand j'ai eu le même problème dans le passé, mais il ne fonctionne pas maintenant. Je sais que la propriété system est définie, car j'appelle System.getProperty juste avant que j'essaie d'ajouter les en-têtes HTTP et renvoie true. Y a-t-il autre chose que je devrais faire pour pouvoir envoyer l'en-tête via? Comme je l'ai dit, cela a fonctionné avant, mais pas maintenant. Je pense que la seule chose qui a changé, c'est que je suis passé de Java 6 à 7. Merci pour toute aide que vous pouvez me donner.