HttpURLConnection senden header authorization

Ich bin kämpfen, um erfolgreich senden Sie GET-Anforderungen mit einem authorization-header mit HttpURLConnection. Fehlercode 400 zurückgeliefert.

Bin ich erfolgreich mit OKHttpClient aber gebeten, nicht auf irgendwelche Abhängigkeiten.

Hier ist mein code:

public static String GETReqUserProfiles() throws IOException {

    URL url = new URL(UrlString);
    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

    urlConnection.setDoOutput(true);
    urlConnection.setRequestMethod("GET");
    urlConnection.setRequestProperty("Content-Type", "application/" + "json");
    urlConnection.setRequestProperty("authorization", "Bearer " + MANAGEMENT_TOKEN);

    urlConnection.connect();

    if (urlConnection.getResponseCode() != 200) {
        throw new RuntimeException("Failed : HTTP error code : "
                + urlConnection.getResponseCode());
    }

    String assembledOutput = "";

    BufferedReader responseBuffer = new BufferedReader(new InputStreamReader(
            (urlConnection.getInputStream())));

    String output;
    System.out.println("Output from Server:\n");
    while ((output = responseBuffer.readLine()) != null) {
        System.out.println(output);
        assembledOutput = assembledOutput + output;
    }

    urlConnection.disconnect();

    return assembledOutput;
}

EDIT:

Alles funktioniert -

Das problem war:

urlConnection.setDoOutput(true);

setDoOutput(true) : erklärt das senden eines Körpers mit der Anfrage. GET-Anfragen nicht verlangen, einen Körper, so kann es auf false gesetzt oder auskommentiert. Statt das ist für die POST, PATCH, SETZEN etc... (Anfragen, die erfordern, dass der Körper).

Beachten Sie auch:

urlConnection.setRequestMethod("GET");

Müssen nicht speziell deklariert werden, wenn das senden einer GET-Anfrage (obwohl ich Links in den code für die Lesbarkeit)

Ich vermute, dass, wenn Sie setDoOutput(true) und kein Antrag angegebene Methode, wäre die Methode standardmäßig eine POST-Anfrage.

setzen urlConnection.connect(); nach setRequestProperty
Hallo Abhay, danke, ich inclucded das verbinden und noch gibt 400 🙁

InformationsquelleAutor ccdle12 | 2017-04-07

Schreibe einen Kommentar