WEBサイト制作・アプリ開発・システム開発・ブランディングデザイン制作に関するご相談はお気軽にご連絡ください。
構想段階からじっくりとヒアリングし、お客様の課題にあわせたアプローチ手法でお客様の“欲しかった”をカタチにしてご提案いたします。
Blog スタッフブログ
Android
システム開発
[Android][Kotlin]Basic認証の通し方
システム開発担当のTFです。
※Android10対応(他バージョンの場合、細かい部分等が異なる事があります)
メモ
- https://username:password@example.com この形式のBasic認証が効かない場合別途対応が必要
- URLConnectionとFuelが効かなかったため、Basic認証用のコード追加
参考
Java の URLConnection で基本認証を行う際のハマりどころ
Fuel
サンプル
// URLConnection 利用
var url: URL = URL( "接続先URL" )
lateinit var istream: InputStream
if( isBasic ){
// basic認証有りの場合
var connection = url.openConnection()
var authString = BuildConfig.AUTH_ID+":"+BuildConfig.AUTH_PASS
connection.setRequestProperty("Authorization","Basic " + Base64.encodeToString( authString.toByteArray(), Base64.NO_WRAP))
istream = connection.getInputStream()
}
else{
// basic認証無しの場合
istream = url.openStream()
}
// Fuel 利用
val apiUrl = "接続先URL"
var map = mutableMapOf<String,String?>()
map.set("test", "test")
val header: HashMap<String, String> = hashMapOf(Headers.CONTENT_TYPE to "application/json; charset=UTF-8")
header.put("X-Requested-With", "XMLHttpRequest")
header.put(Headers.ACCEPT, "application/json")
if( isBasic ){
// basic認証有りの場合
val(_, response, result) = apiUrl.httpGet(map.toList()).header(header)
.authentication().basic(BuildConfig.AUTH_ID, BuildConfig.AUTH_PASS)
.responseJson()
}
else{
// basic認証無しの場合
val(_, response, result) = apiUrl.httpGet(map.toList()).header(header)
.responseJson()
}