フッターコンテンツにスキップ
JAVA ヘルプ

OkHttp Java:HTTPリクエストを簡素化

現代のJava開発において、HTTPリクエストの効率的な処理は、特にウェブサービスやAPIに依存するアプリケーションを構築するために非常に重要です。OkHttpは、JavaとKotlinの強力なHTTPおよびHTTP/2クライアントで、その性能、使いやすさ、そして高度な機能により人気の選択肢となっています。

この記事は、OkHttpの主要機能、インストール、一般的な使用例を包含する包括的なガイドを提供します。

OkHttpとは何ですか?

OkHttpは、HTTPリクエストを処理するための多機能なオープンソースのJavaライブラリで、アプリケーションにシームレスに統合するための包括的な機能セットを提供します。 その直感的なAPIにより、新しいリクエストの作成やシンプルなPOSTリクエストの実行は、クエリパラメータと文字列URLを設定する新しいリクエストビルダーを使用するだけで簡単です。

さらに、OkHttpは効率的なレスポンス処理を促進し、レスポンスボディ、レスポンスヘッダへのアクセスを提供し、ネットワークトラフィックを最適化しサーバの可用性の問題を減少させるためにレスポンスのキャッシングもサポートしています。 同期呼び出しでも非同期呼び出しでも、OkHttpのコネクションプーリングは複数のIPアドレスに対処する場合でも最適なパフォーマンスを保証します。

OkHttp Java (開発者向けの動作方法): 図1

Apache HTTP Clientを使用に慣れている開発者にとって、OkHttpはより現代的で効率的な代替手段を提供し、性能と柔軟性を向上させます。 非同期の呼び出しとコールバックのサポートにより、応答性とスケーラビリティを必要とするアプリケーションにとって好まれる選択肢となっています。

OkHttpを使用することで、多くのHTTPクライアントとリクエストの管理が容易になり、パフォーマンスや機能性を犠牲にすることなく、堅牢で信頼性のあるアプリケーションを構築することに集中できるようになります。

主要機能

OkHttpの主な機能には以下が含まれます:

  • 同期および非同期リクエスト処理:OkHttpは同期(ブロッキング)および非同期(非ブロッキング)操作の両方を可能にします。
  • コネクションプーリング:HTTP接続を再利用してクライアント接続の問題を最小限に抑え、性能を向上させます。
  • 透明なGZIP圧縮:HTTPレスポンスのサイズを削減し、帯域を節約しデータ転送を高速化します。
  • キャッシュ:レスポンスキャッシングをサポートし、繰り返しのネットワークリクエストの必要性を減少させます。
  • HTTP/2サポート:単一の接続上で複数のリクエストとレスポンスを多重化することで性能を向上させます。
  • タイムアウトとリトライ:接続および読み取りタイムアウトに対する細かい制御、ならびに失敗したリクエストへのリトライメカニズムを提供します。

OkHttpのインストール

JavaプロジェクトでOkHttpを使用するには、その依存関係をビルド設定に含める必要があります。 Mavenを使用している場合は、以下の依存関係をpom.xmlファイルに追加してください:

<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>5.0.0-alpha.14</version>
</dependency>
<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>5.0.0-alpha.14</version>
</dependency>
XML

Gradleの場合、build.gradleファイルにこの行を追加してください:

implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.14'

最新バージョンをMaven CentralやGitHubで確認してください。

基本的な使用方法

OkHttpClientの作成

OkHttpClientクラスはHTTPリクエストを実行するための主要なエントリーポイントです。 接続プーリングを活用するために、アプリケーション全体で単一のOkHttpClientインスタンスを作成して再利用することを推奨します。

import okhttp3.OkHttpClient;

OkHttpClient client = new OkHttpClient();
import okhttp3.OkHttpClient;

OkHttpClient client = new OkHttpClient();
JAVA

GETリクエストの作成

シンプルなGETリクエストを作成するには、Requestオブジェクトを作成し、OkHttpClientを使用して実行します。

import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;

public class OkHttpExample {
    public static void main(String[] args) {
        OkHttpClient client = new OkHttpClient();

        // Create a request specifying the URL
        Request request = new Request.Builder()
                .url("https://jsonplaceholder.typicode.com/posts/1")
                .build();

        // Execute the request and handle the response
        try (Response response = client.newCall(request).execute()) {
            if (response.isSuccessful()) { // Check if the response was successful
                System.out.println(response.body().string()); // Print the response body
            } else {
                System.err.println("Request failed: " + response.code()); // Print error code
            }
        } catch (IOException e) {
            e.printStackTrace(); // Handle exceptions
        }
    }
}
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;

public class OkHttpExample {
    public static void main(String[] args) {
        OkHttpClient client = new OkHttpClient();

        // Create a request specifying the URL
        Request request = new Request.Builder()
                .url("https://jsonplaceholder.typicode.com/posts/1")
                .build();

        // Execute the request and handle the response
        try (Response response = client.newCall(request).execute()) {
            if (response.isSuccessful()) { // Check if the response was successful
                System.out.println(response.body().string()); // Print the response body
            } else {
                System.err.println("Request failed: " + response.code()); // Print error code
            }
        } catch (IOException e) {
            e.printStackTrace(); // Handle exceptions
        }
    }
}
JAVA

OkHttp Java (開発者向けの動作方法): 図2

POSTリクエストの作成

POSTリクエストの場合、リクエストボディを含めてレスポンスを返す必要があります。 OkHttpはこれを処理するためのRequestBodyクラスを提供します。

import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import java.io.IOException;

public class OkHttpExample {
    // Define the JSON media type
    public static final MediaType JSON = MediaType.get("application/json; charset=utf-8");

    public static void main(String[] args) {
        OkHttpClient client = new OkHttpClient();

        // JSON data to be sent
        String json = "{\"title\":\"foo\",\"body\":\"bar\",\"userId\":1}";

        // Create request body with JSON data
        RequestBody body = RequestBody.create(json, JSON);

        // Build the POST request
        Request request = new Request.Builder()
                .url("https://jsonplaceholder.typicode.com/posts")
                .post(body)
                .build();

        // Execute the request and handle the response
        try (Response response = client.newCall(request).execute()) {
            if (response.isSuccessful()) { // Check if the response was successful
                System.out.println(response.body().string()); // Print the response body
            } else {
                System.err.println("Request failed: " + response.code()); // Print error code
            }
        } catch (IOException e) {
            e.printStackTrace(); // Handle exceptions
        }
    }
}
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import java.io.IOException;

public class OkHttpExample {
    // Define the JSON media type
    public static final MediaType JSON = MediaType.get("application/json; charset=utf-8");

    public static void main(String[] args) {
        OkHttpClient client = new OkHttpClient();

        // JSON data to be sent
        String json = "{\"title\":\"foo\",\"body\":\"bar\",\"userId\":1}";

        // Create request body with JSON data
        RequestBody body = RequestBody.create(json, JSON);

        // Build the POST request
        Request request = new Request.Builder()
                .url("https://jsonplaceholder.typicode.com/posts")
                .post(body)
                .build();

        // Execute the request and handle the response
        try (Response response = client.newCall(request).execute()) {
            if (response.isSuccessful()) { // Check if the response was successful
                System.out.println(response.body().string()); // Print the response body
            } else {
                System.err.println("Request failed: " + response.code()); // Print error code
            }
        } catch (IOException e) {
            e.printStackTrace(); // Handle exceptions
        }
    }
}
JAVA

OkHttp Java (開発者向けの動作方法): 図3

非同期リクエスト

非同期リクエストはコールバックを使用して処理され、応答を待つ間にアプリケーションが応答性を保つことができます。

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;

public class OkHttpExample {
    public static void main(String[] args) {
        OkHttpClient client = new OkHttpClient();

        // Create a request specifying the URL
        Request request = new Request.Builder()
                .url("https://jsonplaceholder.typicode.com/posts/1")
                .build();

        // Enqueue the request to be executed asynchronously
        client.newCall(request).enqueue(new Callback() {

            // Handle failure of the request
            @Override
            public void onFailure(Call call, IOException e) {
                e.printStackTrace(); // Handle exceptions
            }

            // Handle successful response
            @Override
            public void onResponse(Call call, Response response) throws IOException {
                if (response.isSuccessful()) { // Check if the response was successful
                    System.out.println(response.body().string()); // Print the response body
                } else {
                    System.err.println("Request failed: " + response.code()); // Print error code
                }
            }
        });
    }
}
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;

public class OkHttpExample {
    public static void main(String[] args) {
        OkHttpClient client = new OkHttpClient();

        // Create a request specifying the URL
        Request request = new Request.Builder()
                .url("https://jsonplaceholder.typicode.com/posts/1")
                .build();

        // Enqueue the request to be executed asynchronously
        client.newCall(request).enqueue(new Callback() {

            // Handle failure of the request
            @Override
            public void onFailure(Call call, IOException e) {
                e.printStackTrace(); // Handle exceptions
            }

            // Handle successful response
            @Override
            public void onResponse(Call call, Response response) throws IOException {
                if (response.isSuccessful()) { // Check if the response was successful
                    System.out.println(response.body().string()); // Print the response body
                } else {
                    System.err.println("Request failed: " + response.code()); // Print error code
                }
            }
        });
    }
}
JAVA

高度な機能

インターセプター

インターセプターはリクエストとレスポンスを検査、変更、またはリトライできる強力な機能です。 これらはログの追加、ヘッダーの追加、認証の処理に使用できます。

import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;

public class OkHttpExample {
    public static void main(String[] args) {
        // Add an interceptor for modifying requests
        OkHttpClient client = new OkHttpClient.Builder()
                .addInterceptor(new Interceptor() {
                    @Override
                    public Response intercept(Chain chain) throws IOException {
                        // Modify the request to add the authorization header
                        Request request = chain.request().newBuilder()
                                .addHeader("Authorization", "Bearer your_token_here")
                                .build();
                        return chain.proceed(request);
                    }
                })
                .build();

        // Create a request specifying the URL
        Request request = new Request.Builder()
                .url("https://jsonplaceholder.typicode.com/posts/1")
                .build();

        // Execute the request and handle the response
        try (Response response = client.newCall(request).execute()) {
            if (response.isSuccessful()) { // Check if the response was successful
                System.out.println(response.body().string()); // Print the response body
            } else {
                System.err.println("Request failed: " + response.code()); // Print error code
            }
        } catch (IOException e) {
            e.printStackTrace(); // Handle exceptions
        }
    }
}
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;

public class OkHttpExample {
    public static void main(String[] args) {
        // Add an interceptor for modifying requests
        OkHttpClient client = new OkHttpClient.Builder()
                .addInterceptor(new Interceptor() {
                    @Override
                    public Response intercept(Chain chain) throws IOException {
                        // Modify the request to add the authorization header
                        Request request = chain.request().newBuilder()
                                .addHeader("Authorization", "Bearer your_token_here")
                                .build();
                        return chain.proceed(request);
                    }
                })
                .build();

        // Create a request specifying the URL
        Request request = new Request.Builder()
                .url("https://jsonplaceholder.typicode.com/posts/1")
                .build();

        // Execute the request and handle the response
        try (Response response = client.newCall(request).execute()) {
            if (response.isSuccessful()) { // Check if the response was successful
                System.out.println(response.body().string()); // Print the response body
            } else {
                System.err.println("Request failed: " + response.code()); // Print error code
            }
        } catch (IOException e) {
            e.printStackTrace(); // Handle exceptions
        }
    }
}
JAVA

タイムアウトの処理

OkHttpはHTTPリクエスト自体のさまざまな段階に対するタイムアウトを設定するメソッドを提供します。

import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
import java.util.concurrent.TimeUnit;

public class OkHttpExample {
    public static void main(String[] args) {
        // Configure timeouts for connections, writes, and reads
        OkHttpClient client = new OkHttpClient.Builder()
                .connectTimeout(10, TimeUnit.SECONDS)
                .writeTimeout(10, TimeUnit.SECONDS)
                .readTimeout(30, TimeUnit.SECONDS)
                .build();

        // Create a request specifying the URL
        Request request = new Request.Builder()
                .url("https://jsonplaceholder.typicode.com/posts/1")
                .build();

        // Execute the request and handle the response
        try (Response response = client.newCall(request).execute()) {
            if (response.isSuccessful()) { // Check if the response was successful
                System.out.println(response.body().string()); // Print the response body
            } else {
                System.err.println("Request failed: " + response.code()); // Print error code
            }
        } catch (IOException e) {
            e.printStackTrace(); // Handle exceptions
        }
    }
}
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
import java.util.concurrent.TimeUnit;

public class OkHttpExample {
    public static void main(String[] args) {
        // Configure timeouts for connections, writes, and reads
        OkHttpClient client = new OkHttpClient.Builder()
                .connectTimeout(10, TimeUnit.SECONDS)
                .writeTimeout(10, TimeUnit.SECONDS)
                .readTimeout(30, TimeUnit.SECONDS)
                .build();

        // Create a request specifying the URL
        Request request = new Request.Builder()
                .url("https://jsonplaceholder.typicode.com/posts/1")
                .build();

        // Execute the request and handle the response
        try (Response response = client.newCall(request).execute()) {
            if (response.isSuccessful()) { // Check if the response was successful
                System.out.println(response.body().string()); // Print the response body
            } else {
                System.err.println("Request failed: " + response.code()); // Print error code
            }
        } catch (IOException e) {
            e.printStackTrace(); // Handle exceptions
        }
    }
}
JAVA

レスポンスのキャッシュ

OkHttpはリクエストの待機時間を短縮し性能を向上させるためにレスポンスをキャッシュできます。 キャッシュディレクトリとサイズを設定する必要があります。

import okhttp3.Cache;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.File;
import java.io.IOException;

public class OkHttpExample {
    public static void main(String[] args) {
        // Define the cache directory and size
        File cacheDirectory = new File("cacheDirectory");
        Cache cache = new Cache(cacheDirectory, 10 * 1024 * 1024); // 10 MB cache

        // Build OkHttpClient with caching capability
        OkHttpClient client = new OkHttpClient.Builder()
                .cache(cache)
                .build();

        // Create a request specifying the URL
        Request request = new Request.Builder()
                .url("https://jsonplaceholder.typicode.com/posts/1")
                .build();

        // Execute the request and handle the response
        try (Response response = client.newCall(request).execute()) {
            if (response.isSuccessful()) { // Check if the response was successful
                System.out.println(response.body().string()); // Print the response body
            } else {
                System.err.println("Request failed: " + response.code()); // Print error code
            }
        } catch (IOException e) {
            e.printStackTrace(); // Handle exceptions
        }
    }
}
import okhttp3.Cache;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.File;
import java.io.IOException;

public class OkHttpExample {
    public static void main(String[] args) {
        // Define the cache directory and size
        File cacheDirectory = new File("cacheDirectory");
        Cache cache = new Cache(cacheDirectory, 10 * 1024 * 1024); // 10 MB cache

        // Build OkHttpClient with caching capability
        OkHttpClient client = new OkHttpClient.Builder()
                .cache(cache)
                .build();

        // Create a request specifying the URL
        Request request = new Request.Builder()
                .url("https://jsonplaceholder.typicode.com/posts/1")
                .build();

        // Execute the request and handle the response
        try (Response response = client.newCall(request).execute()) {
            if (response.isSuccessful()) { // Check if the response was successful
                System.out.println(response.body().string()); // Print the response body
            } else {
                System.err.println("Request failed: " + response.code()); // Print error code
            }
        } catch (IOException e) {
            e.printStackTrace(); // Handle exceptions
        }
    }
}
JAVA

JavaでのIronPDFとのOkHttpの統合

OkHttpとIronPDFの能力を組み合わせることで、Java開発者はウェブからデータを取得し、それをPDFに変換することができます。 OkHttpはネットワークリクエストを処理するための堅牢なHTTPクライアントであり、IronPDFは様々なソースからPDFを生成するための強力なライブラリです。

IronPDF - 概要

IronPDF for JavaはJavaアプリケーション内でのPDF生成を簡素化するために設計された包括的なライブラリです。 その直感的なAPIを活用し、HTML、画像、テキストなどのさまざまなデータソースからPDFドキュメントを簡単に作成、操作、レンダリングできます。

PDF暗号化、デジタル署名、インタラクティブなフォーム記入といった高度な機能のサポートにより、開発者は特定の要求に合わせたプロフェッショナルグレードのPDFを生成することができます。 そのシームレスな統合と豊富なドキュメントにより、Java開発者が堅牢なPDF生成機能でアプリケーションを強化したいときの頼りになるソリューションです。

OkHttp Java (開発者向けの動作方法): 図4

依存関係の設定

まず、必要な依存関係をpom.xml(Mavenの場合)ファイルまたはbuild.gradle(Gradleの場合)ファイルに追加します。

Maven

<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2024.3.1</version>
</dependency>
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2024.3.1</version>
</dependency>
XML

Gradle

implementation 'com.ironsoftware:ironpdf:2024.3.1'

OkHttpとIronPDFの統合

今、OkHttpを使用してHTMLコンテンツを取得し、IronPDFを使用してPDFを生成するという二つの機能を組み合わせましょう。

import com.ironsoftware.ironpdf.PdfDocument;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
import java.nio.file.Paths;

public class OkHttpToPdf {
    private final OkHttpClient client = new OkHttpClient(); // Initialize the OkHttpClient

    // Method to fetch HTML content from a given URL
    public String fetchHtml(String url) throws IOException {
        Request request = new Request.Builder()
                .url(url)
                .build();

        // Execute the request and return the response body as a string
        try (Response response = client.newCall(request).execute()) {
            if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
            return response.body().string();
        }
    }

    // Method to generate a PDF from a URL
    public void generatePdfFromUrl(String url, String outputFilePath) {
        try {
            String htmlContent = fetchHtml(url); // Fetch the HTML content
            PdfDocument pdf = PdfDocument.renderHtmlAsPdf(htmlContent); // Render HTML as PDF
            pdf.saveAs(Paths.get(outputFilePath)); // Save the PDF to the specified path
            System.out.println("PDF generated successfully at " + outputFilePath);
        } catch (IOException e) {
            System.err.println("Failed to fetch HTML content: " + e.getMessage());
        } catch (Exception e) {
            System.err.println("Failed to generate PDF: " + e.getMessage());
        }
    }

    // Main method to demonstrate fetching HTML and generating a PDF
    public static void main(String[] args) {
        OkHttpToPdf converter = new OkHttpToPdf(); // Create an instance of OkHttpToPdf
        converter.generatePdfFromUrl("https://ironpdf.com/java", "website.pdf"); // Fetch HTML and generate PDF
    }
}
import com.ironsoftware.ironpdf.PdfDocument;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
import java.nio.file.Paths;

public class OkHttpToPdf {
    private final OkHttpClient client = new OkHttpClient(); // Initialize the OkHttpClient

    // Method to fetch HTML content from a given URL
    public String fetchHtml(String url) throws IOException {
        Request request = new Request.Builder()
                .url(url)
                .build();

        // Execute the request and return the response body as a string
        try (Response response = client.newCall(request).execute()) {
            if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
            return response.body().string();
        }
    }

    // Method to generate a PDF from a URL
    public void generatePdfFromUrl(String url, String outputFilePath) {
        try {
            String htmlContent = fetchHtml(url); // Fetch the HTML content
            PdfDocument pdf = PdfDocument.renderHtmlAsPdf(htmlContent); // Render HTML as PDF
            pdf.saveAs(Paths.get(outputFilePath)); // Save the PDF to the specified path
            System.out.println("PDF generated successfully at " + outputFilePath);
        } catch (IOException e) {
            System.err.println("Failed to fetch HTML content: " + e.getMessage());
        } catch (Exception e) {
            System.err.println("Failed to generate PDF: " + e.getMessage());
        }
    }

    // Main method to demonstrate fetching HTML and generating a PDF
    public static void main(String[] args) {
        OkHttpToPdf converter = new OkHttpToPdf(); // Create an instance of OkHttpToPdf
        converter.generatePdfFromUrl("https://ironpdf.com/java", "website.pdf"); // Fetch HTML and generate PDF
    }
}
JAVA

コードの説明

上記コードは、JavaでOkHttpとIronPDFライブラリを使用してURLからHTMLコンテンツを取得し、それをPDFファイルに変換する方法を示しています。

  1. インポート文:必要なライブラリがインポートされ、PDF生成用のIronPDFとHTTPリクエスト用のOkHttpが含まれます。

  2. OkHttpClientの初期化OkHttpClientのインスタンスが作成されます。

  3. fetchHtmlメソッド:このメソッドは指定したURLからHTMLコンテンツを取得します。

    • 提供されたURLを使用してリクエストが構築されます。
    • リクエストが実行され、レスポンスが取得されます。
    • レスポンスが成功しない場合、IOExceptionがスローされます。
    • レスポンスボディは文字列として返されます。
  4. generatePdfFromUrlメソッド:このメソッドは指定したURLのHTMLコンテンツからPDFを生成し、指定されたファイルパスに保存します。

    • HTMLコンテンツはfetchHtmlメソッドを使用して取得されます。
    • HTMLコンテンツはIronPDFを使用してPDFとしてレンダリングされます。
    • PDFは指定されたファイルパスに保存されます。
    • HTMLの取得とPDFの生成の両方に対して適切なエラーハンドリングが含まれます。
  5. mainメソッド:これはプログラムのエントリーポイントです。

    • OkHttpToPdfのインスタンスが作成されます。
    • generatePdfFromUrlメソッドは特定のURLと出力ファイルパスで呼び出されます。

出力

OkHttpクライアントを使用してURLデータが取得され、IronPDFを使用してそれを効率的にPDFに変換する方法が以下に示されます。

OkHttp Java (開発者向けの動作方法): 図5

IronPDFに関する詳細情報は、このIronPDFドキュメントページを参照してください。 Please also check this IronPDF Code Examples and IronPDF API Reference page for further utilizing IronPDF.

結論

OkHttpは、JavaとAndroidのための多機能で強力なHTTPクライアントで、ネットワークリクエストのプロセスを簡素化します。 同期および非同期操作、コネクションプーリング、透明なGZIP圧縮、キャッシュ、およびHTTP/2のサポートにより、OkHttpクライアントは幅広いユースケースに適しています。 JavaアプリケーションにOkHttpを統合することで、そのパフォーマンス、信頼性、効率を向上させることができます。

OkHttpとIronPDFを統合することで、ウェブソースからHTMLコンテンツを効率的に取得し、PDFドキュメントに変換することができます。 この方法は、レポートを生成したり、ウェブページを保存したり、ウェブコンテンツをオフラインドキュメントに変換する必要があるアプリケーションに特に有用です。

プロジェクトにプロフェッショナルグレードのPDF生成のシームレスな統合を可能にするIronPDFの無料トライアルであなたのJavaアプリケーションにおけるPDF生成の可能性を解き放ちましょう。 今すぐダウンロードして、あなたのPDF生成の体験を高めましょう!

Darrius Serrant
フルスタックソフトウェアエンジニア(WebOps)

Darrius Serrantは、マイアミ大学でコンピュータサイエンスの学士号を取得し、Iron SoftwareでフルスタックWebOpsマーケティングエンジニアとして働いています。若い頃からコーディングに惹かれ、コンピューティングを神秘的かつアクセス可能なものとし、創造性と問題解決のための完璧な媒体と考えていました。

Iron Softwareでは、新しいものを創造することと、複雑なコンセプトをより理解しやすくすることを楽しんでいます。Resident Developerの一人として、次世代に専門知識を共有するために、学生を教えることにも志願しました。

Darriusにとって、その仕事は価値があり、実際の影響があるため、満足感があります。