我正努力使用httpurlconnection成功地发送带有授权头的get请求。返回错误代码400。
我成功地使用了okhttpclient,但请求不要使用任何依赖项。
这是我的代码:

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;
}

编辑:
一切正常-
问题在于:
urlConnection.setDoOutput(true);

setdooutput(true):声明发送带有请求的主体。get请求不需要主体,因此可以将其设置为false或注释掉。相反,这是用来张贴,修补,放置等…(需要一个机构的请求)。
另请注意:
urlConnection.setRequestMethod("GET");

如果发送get请求,则不需要特别声明(尽管我留在代码中是为了可读性)
我怀疑如果包含setdooutput(true)并且没有指定请求方法,那么该方法将默认为post请求。

最佳答案

我为此开发了一个图书馆,你可以用它。
https://github.com/kksingla/fetchjson
如果不想使用依赖项,可以在此处查看代码

10-08 03:15