Fidel API 在从 java 代码调用时给出 401

问题描述 投票:0回答:1

我试图从我的java代码调用Fidel的API,这个API只需要一个我们需要传入标头的身份验证密钥。 当我从邮递员那里点击 API 时,它就起作用了。但从我的java代码来看,它抛出401。

这是邮递员的电话: enter image description here

这是我的java代码:

URL url = new URL(environment.getBaseUrl() + "offers");
    HttpURLConnection con = (HttpURLConnection) url.openConnection();
    con.setRequestMethod("POST");
    con.setRequestProperty("Content-Type", "application/json");
    con.setRequestProperty("Accept", "application/json");
    con.setRequestProperty("Fidel-Key", "my-secret-key-here");
    con.setDoOutput(true);
    ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
    String json = ow.writeValueAsString(fidelCreateOfferRequest);

    try (OutputStream os = con.getOutputStream()) {
        byte[] input = json.getBytes(StandardCharsets.UTF_8);
        os.write(input, 0, input.length);
    }

    int status = con.getResponseCode();
    System.out.println("Http Status: " + status);

    BufferedReader in;
    if (status == 200) {
        in = new BufferedReader(new InputStreamReader(con.getInputStream()));
    } else {
        in = new BufferedReader(new InputStreamReader(con.getErrorStream()));
        System.out.println("cannot create offer. failed with status: " + status);
    }
java authentication httpurlconnection request-headers
1个回答
0
投票

发生这种情况是因为我没有发送请求正文中的字段之一,之前没有注意到这一点。

© www.soinside.com 2019 - 2024. All rights reserved.