跳過到頁腳內容
JAVA 幫助

Google HTTP 客戶端庫 Java(開發者運作原理)

Google HTTP Client Library for Java 是一個強大的函式庫,旨在簡化 Java 應用程式中發出 HTTP 請求和處理回應的過程。 它是 Google 應用引擎和 Google API 用戶端的一部分,也是 Google API 的一部分。這款強大的 Java 庫由 Google 開發和維護,支援多種 HTTP 方法,並能與 JSON 資料模型和 XML 資料模型無縫集成,是希望與 Web 服務互動的開發人員的理想選擇。 此外,我們將探索IronPDF for Java,並示範如何將其與Google HTTP 用戶端庫集成,以從 HTTP 回應資料產生 PDF 文件。

主要功能

1.簡化的 HTTP 請求:該程式庫抽象化了創建和發送 HTTP 請求的大部分複雜性,使開發人員更容易使用。 2.支援多種身份驗證方法:它支援 OAuth 2.0 和其他身份驗證方案,這對於與現代 API 進行互動至關重要。

  1. JSON 和 XML 解析:此函式庫可以自動將 JSON 和 XML 回應解析為 Java 對象,從而減少樣板程式碼。 4.非同步請求:它支援非同步請求,可以將網路操作卸載到後台線程,從而提高應用程式效能。 5.內建重試機制:該程式庫包含一個內建的重試機制,用於處理瞬態網路錯誤,有助於提高應用程式的健全性。 6.穩定性和維護性:本庫提供穩定且非測試版的功能,確保在生產環境中的可靠性能。

Google HTTP 用戶端程式庫(Java 版)(開發者使用指南):圖 1 - Google HTTP 用戶端程式庫 Java 首頁

為 Java 設定 Google HTTP 用戶端程式庫

若要使用適用於 Java 的 Google HTTP 用戶端程式庫,您必須將完整的用戶端程式庫和必要的相依性新增至您的專案。 如果您使用的是 Maven,則可以將下列相依性新增至 pom.xml 檔案:

<dependencies>
    <dependency>
        <groupId>com.google.http-client</groupId>
        <artifactId>google-http-client</artifactId>
        <version>1.39.2</version>
    </dependency>
    <dependency>
        <groupId>com.google.http-client</groupId>
        <artifactId>google-http-client-jackson2</artifactId>
        <version>1.39.2</version>
    </dependency>
</dependencies>
<dependencies>
    <dependency>
        <groupId>com.google.http-client</groupId>
        <artifactId>google-http-client</artifactId>
        <version>1.39.2</version>
    </dependency>
    <dependency>
        <groupId>com.google.http-client</groupId>
        <artifactId>google-http-client-jackson2</artifactId>
        <version>1.39.2</version>
    </dependency>
</dependencies>
XML

基本用法

讓我們透過各種範例來探索 Google HTTP Client Library for Java 的基本用法。

1. 發送簡單的 GET 請求

以下程式碼示範如何使用 Google HTTP 用戶端庫發出簡單的 GET 請求:

import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestFactory;
import com.google.api.client.http.HttpResponse;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.http.GenericUrl;

public class HttpClientExample {
    public static void main(String[] args) {
        try {
            // Create a request factory using NetHttpTransport
            HttpRequestFactory requestFactory = new NetHttpTransport().createRequestFactory();
            // Define the URL for the GET request
            GenericUrl url = new GenericUrl("https://jsonplaceholder.typicode.com/posts/1");
            // Build the GET request
            HttpRequest request = requestFactory.buildGetRequest(url);
            // Execute the request and get the response
            HttpResponse response = request.execute();
            // Parse the response as a String and print it
            System.out.println(response.parseAsString());
        } catch (Exception e) {
            // Print the stack trace if an exception occurs
            e.printStackTrace();
        }
    }
}
import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestFactory;
import com.google.api.client.http.HttpResponse;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.http.GenericUrl;

public class HttpClientExample {
    public static void main(String[] args) {
        try {
            // Create a request factory using NetHttpTransport
            HttpRequestFactory requestFactory = new NetHttpTransport().createRequestFactory();
            // Define the URL for the GET request
            GenericUrl url = new GenericUrl("https://jsonplaceholder.typicode.com/posts/1");
            // Build the GET request
            HttpRequest request = requestFactory.buildGetRequest(url);
            // Execute the request and get the response
            HttpResponse response = request.execute();
            // Parse the response as a String and print it
            System.out.println(response.parseAsString());
        } catch (Exception e) {
            // Print the stack trace if an exception occurs
            e.printStackTrace();
        }
    }
}
JAVA

在這個範例中,我們建立了一個HttpRequestFactory ,並使用它來建置和執行對佔位符 API 的 GET 請求。 這裡我們使用 try-catch 區塊來處理請求失敗時可能發生的異常。 然後我們將響應列印到控制台。

! Google HTTP 用戶端程式庫(Java 版)(開發者使用方法):圖 2 - 上述範例回應的控制台輸出

2. 使用 JSON 資料發出 POST 請求

以下程式碼示範如何使用 JSON 資料發出 POST 請求:

import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestFactory;
import com.google.api.client.http.HttpResponse;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.http.GenericUrl;
import com.google.api.client.http.json.JsonHttpContent;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import java.util.HashMap;
import java.util.Map;

public class HttpClientExample {
    public static void main(String[] args) {
        try {
            // Create a request factory using NetHttpTransport
            HttpRequestFactory requestFactory = new NetHttpTransport().createRequestFactory();
            // Define the URL for the POST request
            GenericUrl url = new GenericUrl("https://jsonplaceholder.typicode.com/posts");
            // Create a map to hold JSON data
            Map<String, Object> jsonMap = new HashMap<>();
            jsonMap.put("title", "foo");
            jsonMap.put("body", "bar");
            jsonMap.put("userId", 1);
            // Create a JSON content using the map
            JsonFactory jsonFactory = new JacksonFactory();
            JsonHttpContent content = new JsonHttpContent(jsonFactory, jsonMap);
            // Build the POST request
            HttpRequest request = requestFactory.buildPostRequest(url, content);
            // Execute the request and get the response
            HttpResponse response = request.execute();
            // Parse the response as a String and print it
            System.out.println(response.parseAsString());
        } catch (Exception e) {
            // Print the stack trace if an exception occurs
            e.printStackTrace();
        }
    }
}
import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestFactory;
import com.google.api.client.http.HttpResponse;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.http.GenericUrl;
import com.google.api.client.http.json.JsonHttpContent;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import java.util.HashMap;
import java.util.Map;

public class HttpClientExample {
    public static void main(String[] args) {
        try {
            // Create a request factory using NetHttpTransport
            HttpRequestFactory requestFactory = new NetHttpTransport().createRequestFactory();
            // Define the URL for the POST request
            GenericUrl url = new GenericUrl("https://jsonplaceholder.typicode.com/posts");
            // Create a map to hold JSON data
            Map<String, Object> jsonMap = new HashMap<>();
            jsonMap.put("title", "foo");
            jsonMap.put("body", "bar");
            jsonMap.put("userId", 1);
            // Create a JSON content using the map
            JsonFactory jsonFactory = new JacksonFactory();
            JsonHttpContent content = new JsonHttpContent(jsonFactory, jsonMap);
            // Build the POST request
            HttpRequest request = requestFactory.buildPostRequest(url, content);
            // Execute the request and get the response
            HttpResponse response = request.execute();
            // Parse the response as a String and print it
            System.out.println(response.parseAsString());
        } catch (Exception e) {
            // Print the stack trace if an exception occurs
            e.printStackTrace();
        }
    }
}
JAVA

在這個範例中,我們建立一個 JSON 對象,並使用JsonHttpContent將其透過 POST 請求傳送。然後,回應會被印到控制台。

! Google HTTP 用戶端程式庫(Java 版)(開發者使用指南):圖 3 - 上述範例回應的控制台輸出

IronPDF Java 版簡介

IronPDF是一個功能強大的 Java 開發人員庫,可簡化 PDF 文件的建立、編輯和管理。 它提供了廣泛的功能,包括將 HTML 轉換為 PDF、操作現有 PDF 文件以及從 PDF 中提取文字和圖像。

! Google HTTP 用戶端庫(Java 版)(開發者使用方法):圖 4 - IronPDF 主頁:Java PDF 庫

IronPDF 的主要功能

  1. HTML 轉 PDF 轉換:將 HTML 內容高傳真轉換為 PDF。 2.操作現有 PDF :合併、分割和修改現有 PDF 文件。 3.文字和圖像提取:從 PDF 文件中提取文字和圖像以進行進一步處理。 4.浮水印和註釋:為 PDF 檔案添加浮水印、註釋和其他增強功能。 5.安全功能:新增密碼和權限以保護 PDF 文件。

為 Java 設定 IronPDF

要在您的 Java 專案中使用 IronPDF,您需要包含 IronPDF 庫。 您可以從 IronPDF 網站下載 JAR 文件,或使用 Maven 等建置工具將其包含在您的專案中。 對於使用 Maven 的用戶,請將以下程式碼新增至 pom.xml 檔案:

<!--Adds IronPDF Java. Use the latest version in the version tag.-->
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2023.12.1</version>
</dependency>
<!--Adds the slf4j logger which IronPDF Java uses.-->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.3</version>
</dependency>
<!--Adds IronPDF Java. Use the latest version in the version tag.-->
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2023.12.1</version>
</dependency>
<!--Adds the slf4j logger which IronPDF Java uses.-->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.3</version>
</dependency>
XML

將 Google HTTP 用戶端庫與 IronPDF 結合使用

在本節中,我們將示範如何使用 Google HTTP 用戶端庫從 Web 服務取得 HTML 內容,然後使用 IronPDF 將該 HTML 內容轉換為 PDF 文件。

範例:取得 HTML 並轉換為 PDF

import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestFactory;
import com.google.api.client.http.HttpResponse;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.http.GenericUrl;
import com.ironsoftware.ironpdf.PdfDocument;

public class HtmlToPdfExample {
    public static void main(String[] args) {
        try {
            // Fetch HTML content using Google HTTP Client Library
            HttpRequestFactory requestFactory = new NetHttpTransport().createRequestFactory();
            GenericUrl url = new GenericUrl("https://jsonplaceholder.typicode.com/posts/1");
            HttpRequest request = requestFactory.buildGetRequest(url);
            HttpResponse response = request.execute();
            String htmlContent = response.parseAsString();

            // Convert HTML content to PDF using IronPDF
            PdfDocument pdf = PdfDocument.renderHtmlAsPdf(htmlContent);
            pdf.saveAs("output.pdf");

            System.out.println("PDF created successfully!");
        } catch (Exception e) {
            // Print the stack trace if an exception occurs
            e.printStackTrace();
        }
    }
}
import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestFactory;
import com.google.api.client.http.HttpResponse;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.http.GenericUrl;
import com.ironsoftware.ironpdf.PdfDocument;

public class HtmlToPdfExample {
    public static void main(String[] args) {
        try {
            // Fetch HTML content using Google HTTP Client Library
            HttpRequestFactory requestFactory = new NetHttpTransport().createRequestFactory();
            GenericUrl url = new GenericUrl("https://jsonplaceholder.typicode.com/posts/1");
            HttpRequest request = requestFactory.buildGetRequest(url);
            HttpResponse response = request.execute();
            String htmlContent = response.parseAsString();

            // Convert HTML content to PDF using IronPDF
            PdfDocument pdf = PdfDocument.renderHtmlAsPdf(htmlContent);
            pdf.saveAs("output.pdf");

            System.out.println("PDF created successfully!");
        } catch (Exception e) {
            // Print the stack trace if an exception occurs
            e.printStackTrace();
        }
    }
}
JAVA

在這個範例中,我們首先使用 Google HTTP 用戶端庫從佔位符 API 取得 HTML 內容。 然後我們使用 IronPDF 將獲取的 HTML 內容轉換為 PDF 文檔,並將其儲存為output.pdf

! 適用於 Java 的 Google HTTP 用戶端程式庫(開發者使用方法):圖 5 - 使用 IronPDF 將接收到的 HTML 內容透過 Google HTTP 轉換為 PDF 文件

結論

Google HTTP Client Library for Java 是一個功能強大的工具,用於與 Web 服務進行交互,它提供簡化的 HTTP 請求、支援各種身份驗證方法、與 JSON 和 XML 解析無縫集成,以及與各種 Java 環境的兼容性。 結合 IronPDF,開發人員可以輕鬆地從 Web 服務獲取 HTML 內容並將其轉換為 PDF 文檔,從而為各種應用程式提供完整的庫,從生成報告到創建 Web 應用程式的可下載內容。 透過利用這兩個函式庫,Java 開發人員可以顯著增強應用程式的功能,同時降低程式碼的複雜性。

請參考以下連結

Darrius Serrant
全棧軟件工程師 (WebOps)

Darrius Serrant 擁有邁阿密大學計算機科學學士學位,目前任職於 Iron Software 的全栈 WebOps 市場營銷工程師。從小就迷上編碼,他認為計算既神秘又可接近,是創意和解決問題的完美媒介。

在 Iron Software,Darrius 喜歡創造新事物,並簡化複雜概念以便於理解。作為我們的駐場開發者之一,他也自願教學生,分享他的專業知識給下一代。

對 Darrius 來說,工作令人滿意因為它被重視且有實際影響。