「Android/kotlin/http通信」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→asynkでアクセス) |
(→asynkでアクセス) |
||
行39: | 行39: | ||
override fun doInBackground(vararg p: Void?): Boolean { | override fun doInBackground(vararg p: Void?): Boolean { | ||
var httpRequest = HttpRequest() | var httpRequest = HttpRequest() | ||
− | + | var success = httpRequest.request("https://example.com/?hogehoge") | |
− | var success = httpRequest.request("https:// | + | |
Log.i(TAG, "body=" + httpRequest.getBody()) | Log.i(TAG, "body=" + httpRequest.getBody()) | ||
return false | return false |
2020年2月14日 (金) 12:09時点における版
サンプル
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
asynkでアクセス
HttpAsyncTask.kt
import android.os.AsyncTask class HttpAsyncTask : AsyncTask<Void, Void, Boolean>() { override fun doInBackground(vararg p: Void?): Boolean { var httpRequest = HttpRequest() var success = httpRequest.request("https://example.com/?hogehoge") Log.i(TAG, "body=" + httpRequest.getBody()) return false } override fun onPostExecute(result: Boolean?) { super.onPostExecute(result) } companion object { private const val TAG = "HttpAsyncTask" } }