Blog スタッフブログ

Android システム開発

[Android][Kotlin]HttpsURLConnectionでのwebコンテンツ読み込み

システム開発担当のTFです。

※Android10対応(他バージョンの場合、細かい部分等が異なる事があります)

やり方

  • ネット接続の為のpermissionを設定する
  • HttpsURLConnectionでweb上のコンテンツにアクセスする
  • inputStreamでコンテンツの中身を読み込む

参考

  [Kotlin] HttpURLConnectionの使い方 | GETとPOSTリクエスト
  JavaのInputStreamを使用しファイルを読み込む方法を解説!

サンプル

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">
	
	<!-- ネット接続の為のpermissionを設定する -->
	<uses-permission android:name="android.permission.INTERNET"/>
	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
	
	<!-- 省略 -->

</manifest>
fun https_connect_test()
{
	thread {
		val url = URL("接続するurl")
		val connection = url.openConnection() as HttpsURLConnection
		
		try{
			// 接続
			connection.connect()
			
			// レスポンス確認
			if (connection.getResponseCode() != HttpsURLConnection.HTTP_OK) {
				// 接続エラー処理
				
				return@thread
			}
			
			// レスポンスのbodyの読み込み
			val inputStream: InputStream = connection.getInputStream()
			val bs = ByteArrayOutputStream()
			val buf = ByteArray(1024)
			var len: Int
			while (inputStream.read(buf).also { len = it } != -1) {
				bs.write(buf, 0, len)
			}
			bs.flush()
			
			// 文字列化
			val body_string = String(bs.toByteArray(), charset("UTF-8"))
			
			// streamを閉じる
			bs.close()
			inputStream.close()

		}
		catch (e:java.lang.Exception){
			// エラー処理
			
		}
	}
}