curlのリクエストはHttpURLConnectionでどう表現するのか
Androidのkotlinでコードを書いています。
アクセストークンからgithubのユーザーネームを取得したいのです。
curl https://api.github.com/user? --user username:[token]
curlだと上記の表現で取得したい情報を取得できます。このリクエストをkotlinで表現するとどのように書けばよろしいのでしょうか?下記にアクセストークンを引数にしてユーザーネーム取得するメソッドを書いたのですがリクエストを送信できません。おそらくURLの記述部分に「--user」というcurlのコマンドを入れているのが原因かと思われます。curlのコマンド部分はHttpURLConnectionだとどのように記述するのでしょうか?いずれかを教えていただけたら幸いです。
private fun GetUserName(token: String): String {
var userName = ""
try {
val url = URL("https://api.github.com/user? --user username:$token")
//接続用HttpURLConnectionオブジェクト作成
var connection: HttpURLConnection = url.openConnection() as HttpURLConnection
try {
//接続タイムアウトを設定する。
connection.connectTimeout = 100000
//レスポンスデータ読み取りタイムアウトを設定する。
connection.readTimeout = 100000
//ヘッダーにAccept-Languageを設定する。
connection.setRequestProperty("Accept-Language", Locale.getDefault().toString())
//ヘッダーにContent-Typeを設定する
connection.addRequestProperty("Content-Type", "application/json; charset=UTF-8")
// リクエストメソッドの設定
connection.requestMethod = "GET"
// リダイレクトを自動で許可しない設定
connection.instanceFollowRedirects = false
// URL接続からデータを読み取る場合はtrue
connection.doInput = true
// URL接続にデータを書き込む場合はtrue
connection.doOutput = false
// 接続
connection.connect()
// レスポンスコードの取得
val code = connection.responseCode
//Log.d("レスポンスコードは", code);
if (code == 204) {
Log.d(TAG, "受信成功")
}
// サーバーからのレスポンスを標準出力へ出す
val reader = BufferedReader(InputStreamReader(connection.getInputStream()))
var xml = ""
var line: String
while (reader.readLine() != null) {
line = reader.readLine()
xml += line
Log.d(TAG, line)
}
Log.d(TAG, "取得した情報一覧$xml")
reader.close()