2019-03-15今回は、OkHttpを使ってHTTPリクエストの動作確認を行ってみた。既存のHttpURLConnectionバージョンとも比較してみた。Kotlin標準のHttpURLConnectionを使って、GET、POSTリクエストの動作確認を行った。完成イメージ(MainActivityからの呼び出し)MainActivityからの事項例はこの様になる。各メソッドでやっていることは単純だ。コールバックを受け取り、値をViewへ反映サーバーにはGETとPOSTで出力メッセージを切り替えるだけの、簡単なプログラムを置いた。HTTPクライアントのインタフェースを作るHTTPクライアントをバックグラウンドタスクへ委譲するため、このようなインタフェースを作ることにした。String?}このインタフェースを実装して、OkHttpClientおよびVerboseHttpClientを作ることにする。OkHttpClientでPOSTのBodyを用意するOkHttpではPOSTのパラメータを渡すときに、次のようにビルダーで生成しなければならない。ような形式の文字列は、そのまま渡せないのでパースする。Stringクラスを拡張してパースしてみた。}AsyncTaskを継承したHTTPTaskHTTPTask`は次の様になっている。コンストラクトに渡されるジェネリック型Tのactivityは、where以降で制約している通り、AppCompatActivityとHTTPTask.Listenerを実装している必要がある。循環参照対策として、渡されたActivityはWeakReferenceに指定している。こちらの記事を大いに参考させてもらった。