JAVA 幫助

Google HTTP Client Library for Java(開發者如何使用)

Google HTTP Client Library for Java 是一個強大的程式庫,旨在簡化在 Java 應用程式中進行 HTTP 請求和處理回應的過程。 它是 Google 應用引擎和 Google API 用戶端的一部分,作為 Google Apis 的一部分。由 Google 開發和維護,這個強大的 Java 庫支持各種 HTTP 方法,並與 JSON 數據模型和 XML 數據模型無縫集成,使其成為開發者尋求與 Web 服務互動的絕佳選擇。 此外,我們將探索IronPDF for Java,並演示如何將其與Google HTTP Client Library集成,以從HTTP响应数据生成PDF文档。

主要功能

  1. 簡化的 HTTP 請求:該庫抽象了創建和發送 HTTP 請求的許多複雜性,使開發人員更容易使用。

  2. 支援各種驗證方法:支援 OAuth 2.0 及其他驗證方案,這對於與現代 API 互動至關重要。

  3. JSON 和 XML 解析:該庫可以自動將 JSON 和 XML 回應解析為 Java 對象,從而減少樣板代碼。

  4. 非同步請求:它支援非同步請求,透過將網路操作卸載到背景執行緒,可以提升應用程式的效能。

  5. 內建重試機制:該庫包含一個內建的重試機制,用於處理瞬態網路錯誤,這有助於提高應用程式的穩定性。

    1. 穩定性和維護:該庫提供穩定且非測試版的功能,確保在生產環境中的可靠性能。

    Google HTTP Client Library for Java(它如何為開發人員工作):圖1 - Google HTTP Client Library Java 首頁

設置 Google HTTP 客戶端庫用於 Java

要使用 Google HTTP 客戶端程式庫 for Java,您必須將完整的客戶端程式庫和必要的依賴項添加到您的項目中。 如果您正在使用 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 用戶端程式庫在 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 {
            HttpRequestFactory requestFactory = new NetHttpTransport().createRequestFactory();
            GenericUrl url = new GenericUrl("https://jsonplaceholder.typicode.com/posts/1");
            HttpRequest request = requestFactory.buildGetRequest(url);
            HttpResponse response = request.execute();
            System.out.println(response.parseAsString());
        } catch (Exception e) {
            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 {
            HttpRequestFactory requestFactory = new NetHttpTransport().createRequestFactory();
            GenericUrl url = new GenericUrl("https://jsonplaceholder.typicode.com/posts/1");
            HttpRequest request = requestFactory.buildGetRequest(url);
            HttpResponse response = request.execute();
            System.out.println(response.parseAsString());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
JAVA

在此範例中,我們創建一個 HttpRequestFactory,並使用它來構建和執行一個對佔位符 API 的 GET 請求。 我們在這裡使用 try-catch 區塊來捕捉異常,以減少在請求失敗時編譯錯誤的發生頻率。 然後,我們將響應輸出至下方的控制台。

Google HTTP Client Library for 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 {
            HttpRequestFactory requestFactory = new NetHttpTransport().createRequestFactory();
            GenericUrl url = new GenericUrl("https://jsonplaceholder.typicode.com/posts");
            Map<String, Object> jsonMap = new HashMap<>();
            jsonMap.put("title", "foo");
            jsonMap.put("body", "bar");
            jsonMap.put("userId", 1);
            JsonFactory jsonFactory = new JacksonFactory();
            JsonHttpContent content = new JsonHttpContent(jsonFactory, jsonMap);
            HttpRequest request = requestFactory.buildPostRequest(url, content);
            HttpResponse response = request.execute();
            System.out.println(response.parseAsString());
        } catch (Exception e) {
            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 {
            HttpRequestFactory requestFactory = new NetHttpTransport().createRequestFactory();
            GenericUrl url = new GenericUrl("https://jsonplaceholder.typicode.com/posts");
            Map<String, Object> jsonMap = new HashMap<>();
            jsonMap.put("title", "foo");
            jsonMap.put("body", "bar");
            jsonMap.put("userId", 1);
            JsonFactory jsonFactory = new JacksonFactory();
            JsonHttpContent content = new JsonHttpContent(jsonFactory, jsonMap);
            HttpRequest request = requestFactory.buildPostRequest(url, content);
            HttpResponse response = request.execute();
            System.out.println(response.parseAsString());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
JAVA

在此範例中,我們創建一個 JSON 對象並使用 JsonHttpContent 在 POST 請求中發送該對象。然後將響應列印到控制台。

Google HTTP Client Library for Java(開發者如何運作):圖 3 - 上述範例響應的控制台輸出

IronPDF for Java 介紹

IronPDF 是一個強大的庫,專為 Java 開發者設計,以簡化創建、編輯和管理 PDF 文檔的過程。 它提供了多種功能,包括將 HTML 轉換為 PDF、操作現有的 PDF 文件,並從 PDF 中提取文字和圖像。

Google HTTP Client Library for Java(開發人員如何使用):圖4 - IronPDF首頁:Java PDF 庫

IronPDF 的主要功能

  1. HTML 轉換為 PDF:將 HTML 內容高品質轉換為 PDF。

  2. 操作現有的PDF:合併、分割和修改現有的PDF文件。

  3. 文字和圖片提取:從 PDF 文檔中提取文字和圖片以進行進一步處理。

  4. 浮水印和註解:添加浮水印、註解和其他增強效果到 PDF 檔案中。

  5. 安全功能:添加密碼和許可權以保護 PDF 文檔。

設置 IronPDF for Java

要在您的 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 客戶端庫從網路服務提取 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.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.client.http.json.JsonHttpContent;
import com.google.api.client.auth.oauth2.Credential;
import com.google.api.client.auth.oauth2.CredentialAccessMethod;
import com.google.api.client.auth.oauth2.TokenResponse;
import com.google.api.client.auth.oauth2.TokenResponseException;
import com.google.api.client.auth.oauth2.TokenRequest;
import com.google.api.client.auth.oauth2.AuthorizationCodeFlow;
import com.google.api.client.auth.oauth2.AuthorizationCodeRequestUrl;
import com.google.api.client.auth.oauth2.AuthorizationCodeTokenRequest;
import com.google.api.client.auth.oauth2.ClientParametersAuthentication;
import com.google.api.client.json.JsonGenerator;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
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) {
            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.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.client.http.json.JsonHttpContent;
import com.google.api.client.auth.oauth2.Credential;
import com.google.api.client.auth.oauth2.CredentialAccessMethod;
import com.google.api.client.auth.oauth2.TokenResponse;
import com.google.api.client.auth.oauth2.TokenResponseException;
import com.google.api.client.auth.oauth2.TokenRequest;
import com.google.api.client.auth.oauth2.AuthorizationCodeFlow;
import com.google.api.client.auth.oauth2.AuthorizationCodeRequestUrl;
import com.google.api.client.auth.oauth2.AuthorizationCodeTokenRequest;
import com.google.api.client.auth.oauth2.ClientParametersAuthentication;
import com.google.api.client.json.JsonGenerator;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
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) {
            e.printStackTrace();
        }
    }
}
JAVA

在此範例中,我們首先使用 Google HTTP Client Library 從佔位符 API 獲取 HTML 內容。 接著,我們使用 IronPDF 將獲取的 HTML 內容轉換為 PDF 文件,並將其保存為 output.pdf。

Google HTTP Client Library for Java (開發人員的運作方式):圖 5 - 利用IronPDF將接收到的HTML內容使用Google HTTP轉換為PDF的輸出

結論

Google HTTP 客戶端程式庫適用於 Java,是一個強大的工具,用於與網路服務互動,提供簡化的 HTTP 請求、支援各種驗證方法、與 JSON 和 XML 分析的無縫整合,以及與各種 Java 環境的相容性。 結合 IronPDF,開發人員可以輕鬆從網路服務中獲取 HTML 內容並將其轉換為 PDF 文件,從而為各種應用程式提供完整的庫,從生成報表到為網路應用程式創建可下載內容。 通過利用這兩個庫,Java 開發者可以顯著增強其應用程式的功能,同時減少程式碼的複雜度。

請參考以下連結

Darrius Serrant
全端軟體工程師(WebOps)

Darrius Serrant 擁有邁阿密大學的計算機科學學士學位,目前擔任 Iron Software 的全端 WebOps 行銷工程師。自幼對編程產生興趣,他認為計算機既神秘又易於接觸,使其成為創造力和解決問題的完美媒介。

在 Iron Software,Darrius 享受創造新事物並簡化複雜概念使其更易理解的過程。作為我們的其中一位常駐開發人員,他也自願教導學生,將他的專業知識傳授給下一代。

對 Darrius 來說,他的工作之所以令人滿足,是因為它受到重視並且產生了真正的影響。

< 上一頁
Java Printf(開發者如何使用)
下一個 >
Jackson Java(它如何為開發者工作)