So fügen Sie Header zu HttpURL-Verbindungsanfragen hinzu
Bei der Arbeit mit HTTP-Anfragen ist das Hinzufügen benutzerdefinierter Header von entscheidender Bedeutung für die Authentifizierung von Anfragen, das Senden zusätzlicher Daten, und Kontrolle des Serververhaltens. Benutzer sind jedoch auf Probleme mit der setRequestProperty()-Methode in HttpURLConnection gestoßen, die ihre Wirksamkeit in Frage stellen. Dieser Artikel befasst sich eingehend mit dem Problem und bietet eine Lösung.
Der bereitgestellte Code zeigt einen Versuch, einer HTTP-Anfrage mithilfe von setRequestProperty() einen Autorisierungsheader hinzuzufügen. Berichten zufolge erhält der Server den Header jedoch nicht.
Um dieses Problem zu beheben, ist es wichtig zu überprüfen, ob der Header korrekt gesendet wird. Ein mögliches Problem besteht darin, dass der Anforderungstext bereits geschrieben wurde, bevor der Header festgelegt wurde. In solchen Fällen ist der Header möglicherweise nicht in der Anfrage enthalten. Um dieses Problem zu beheben, sollte der Header festgelegt werden, bevor eine Ausgabe geschrieben wird.
Alternativ kann ein anderer Ansatz zum Hinzufügen von Headern verwendet werden, wie in der bereitgestellten Lösung gezeigt:
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); 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);
Dies Der Code konfiguriert eine POST-Anfrage und legt den Autorisierungsheader mithilfe der Base64-Codierung manuell mit der richtigen Syntax fest. Durch das explizite Setzen der Header wird sichergestellt, dass diese in der Anfrage enthalten sind. Darüber hinaus wird auch der Content-Length-Header festgelegt, der für POST-Anfragen mit einem Text wichtig ist.
Durch die Implementierung dieser Lösungen können Benutzer effektiv benutzerdefinierte Header zu ihren HttpURLConnection-Anfragen hinzufügen und so eine ordnungsgemäße Anfrageauthentifizierung und -kontrolle ermöglichen.
Das obige ist der detaillierte Inhalt vonWarum kann ich mit der setRequestProperty()-Methode von HttpURLConnection keine Header festlegen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!