簡體   English   中英

如何使用java的HTTPS請求進行授權?

[英]How to authorize with HTTPS request with java?

我需要通過https連接到API,但需要授權。
我有它的登錄名和密碼,但不知道如何將其轉移到https。

代碼我嘗試使用以下代碼(從另一個SO帖子獲得):

public class TestHTTPSRequest {
public static void main(String[] args) throws Exception {
    URLConnection connection = new URL("https://smartcat.ai/api/integration/v1/account").openConnection();

    InputStream is = connection.getInputStream();
    InputStreamReader reader = new InputStreamReader(is);
    char[] buffer = new char[256];
    int rc;

    StringBuilder sb = new StringBuilder();

    while ((rc = reader.read(buffer)) != -1)
        sb.append(buffer, 0, rc);

    reader.close();

    System.out.println(sb);
}
}

請嘗試使用HTTPClient。 您可以輕松連接到https網址。

此外,如果它是一個安全的URL你需要一些安全標頭他們可以

1>身份驗證令牌或任何其他令牌

2>為了CSRF保護,您可能需要一些其他令牌

請瀏覽API的文檔

傑克傑伊的鏈接幫助。 以下方法對我很有用:

public static void main(String[] args) {

    try {
        URL url = new URL ("https://.../......");
        String encoding = Base64.getEncoder().encodeToString(("login:password").getBytes());

        HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
        connection.setRequestMethod("GET");
        connection.setDoOutput(true);
        connection.setRequestProperty  ("Authorization", "Basic " + encoding);
        InputStream content = (InputStream)connection.getInputStream();
        BufferedReader in   =
                new BufferedReader (new InputStreamReader (content));
        String line;
        while ((line = in.readLine()) != null) {
            System.out.println(line);
        }
    } catch(Exception e) {
        e.printStackTrace();
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM