WEBサイト制作・アプリ開発・システム開発・ブランディングデザイン制作に関するご相談はお気軽にご連絡ください。
構想段階からじっくりとヒアリングし、お客様の課題にあわせたアプローチ手法でお客様の“欲しかった”をカタチにしてご提案いたします。
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){
// エラー処理
}
}
}