「Android/kotlin/http通信」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→asyncでアクセス) |
(→asyncでアクセス) |
||
行45: | 行45: | ||
return true | return true | ||
} | } | ||
− | override fun onPostExecute(flag: Boolean | + | override fun onPostExecute(flag: Boolean) { |
Log.i(TAG, "onPostExecute flag=" + flag) | Log.i(TAG, "onPostExecute flag=" + flag) | ||
super.onPostExecute(flag) | super.onPostExecute(flag) |
2020年2月14日 (金) 12:16時点における版
サンプル
HttpRequest.kt
class HttpRequest { private var body = ""; fun request(requestUrl: String): Boolean { if (requestUrl.isEmpty()) { Log.w(TAG, "URLが空です。") return false } val url = URL(requestUrl) val urlConnection = url.openConnection() as HttpURLConnection urlConnection.requestMethod = "GET" urlConnection.connect() val br = BufferedReader(InputStreamReader(urlConnection.inputStream)) val sb = StringBuilder() for (line: String? in br.readLines()) { line?.let { sb.append(line) } } br.close() body = sb.toString() return true } fun getBody(): String { return body } companion object { private const val TAG = "HttpRequest" } }
参考:https://qiita.com/naoi/items/8df1409ad48ad8f3c632
asyncでアクセス
直アクセスだとアクセスできないのでAsyncTaskをかます。
HttpAsyncTask.kt
import android.os.AsyncTask class HttpAsyncTask : AsyncTask<Void, Void, Boolean>() { override fun doInBackground(vararg p: Void?): Boolean { var httpRequest = HttpRequest() var success: Boolean = httpRequest.request("https://example.com/?hogehoge") Log.i(TAG, "body=" + httpRequest.getBody()) return true } override fun onPostExecute(flag: Boolean) { Log.i(TAG, "onPostExecute flag=" + flag) super.onPostExecute(flag) } }