LoginSignup
0
0

More than 1 year has passed since last update.

Javaのクラス内で画像を取得する

Posted at

概要

Javaのクラス内で、HTTP通信を使って外部から画像データなどを取得する方法について、HttpURLConnectionを使ってデータを取得していました。
このHttpURLConnectionについて、今まではただ必要な設定として認識していたものを、それぞれどのような事を設定しているのかを改めて確認をしたいと自分用にまとめようと思いました。

ソースコード

今回は、外部から画像データを取得して、それがPNGの画像データであればそのInputStreamを生成するという部分のみ抜粋しました。

String targetContentType = "image/png";
DataInputStream inputStream = null;
try {
    // フォーマットがPNGの画像を指定
    URL url = new URL("https://dummyimage.com/570x150");
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setAllowUserInteraction(false);
    conn.setUseCaches(false);
    conn.setInstanceFollowRedirects(true);
    conn.setRequestMethod("GET");
    conn.connect();
    if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
        if (conn.getContentType().equals(targetContentType)) {
            inputStream = new DataInputStream(conn.getInputStream());
        }
    }
} catch (MalformedURLException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}
if (inputStream != null) {
    // 画像のInputStreamに対してやりたい事
}

HttpURLConnectionに設定したフィールド

上記で設定したフィールドのみ列挙しています。

フィールド 修飾子と型 説明
allowUserInteraction protected boolean 接続時にユーザー名やパスワードの入力を求められたとき、許可をするかどうか
url protected URL HTTP通信をしたい対象のURL
useCaches protected boolean キャッシュを使用を許可するかどうか
method protected String HTTPに使用するメソッド(GETやPOSTなど)
instanceFollowRedirects protected boolean プロトコルがリダイレクトに従うかどうか
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0