Dépannage de l'ajout d'un en-tête dans HttpURLConnection
Lorsque vous tentez d'ajouter des en-têtes à une requête HttpURLConnection, la méthode setRequestProperty() peut ne pas toujours fonctionner comme prévu , ce qui fait que le serveur ne reçoit pas les en-têtes prévus.
Une solution potentielle, qui s'est avérée efficace dans les environnements TomCat, consiste à utiliser l'extrait de code suivant :
URL myURL = new URL(serviceURL); HttpURLConnection myURLConnection = (HttpURLConnection)myURL.openConnection(); String userCredentials = "username:password"; String basicAuth = "Basic " + new String(Base64.getEncoder().encode(userCredentials.getBytes())); myURLConnection.setRequestProperty ("Authorization", basicAuth); // Adjust these properties based on request type (POST/GET) and other requirements myURLConnection.setRequestMethod("POST"); myURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); myURLConnection.setRequestProperty("Content-Length", "" + postData.getBytes().length); myURLConnection.setRequestProperty("Content-Language", "en-US"); myURLConnection.setUseCaches(false); myURLConnection.setDoInput(true); myURLConnection.setDoOutput(true);
Ce code est spécifiquement conçu pour les requêtes POST, mais vous pouvez facilement le modifier pour GET ou d'autres types de requêtes si nécessaire. En appliquant ces mises à jour, vous devriez pouvoir ajouter avec succès des en-têtes à vos requêtes HttpURLConnection et vous assurer que le serveur reçoit les en-têtes attendus.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!