如何在Kotlin中创建API请求?
我对Kotlin和API非常陌生,找不到使用此语言创建API请求的语法。 我正在创建网站的移动版本,所以我正在使用Android Studio为已建立的后端创建新的用户界面。 创建请求的步骤和语法是什么? 任何帮助深表谢意。
一旦你将Android Studio设置为使用Kotlin,就可以非常简单地进行REST调用,而且它与Java的逻辑几乎相同。
下面是一个使用OkHttp进行REST调用的例子 :
的build.gradle
dependencies { //... compile 'com.squareup.okhttp3:okhttp:3.8.1' }
AndroidManifest.xml中
<uses-permission android:name="android.permission.INTERNET" />
MainActivity.kt
class MainActivity : AppCompatActivity() { val client = OkHttpClient() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) run("https://api.github.com/users/Evin1-/repos") } fun run(url: String) { val request = Request.Builder() .url(url) .build() client.newCall(request).enqueue(object : Callback { override fun onFailure(call: Call, e: IOException) {} override fun onResponse(call: Call, response: Response) = println(response.body()?.string()) }) } }
我在这个版本库中创建了一个更复杂的例子,我使用了Dagger,RxJava,MVP Retrofit。
https://github.com/Evin1-/Kotlin-MVP-Dagger2-RxJava-Retrofit
改造是在Android上使用API的好工具。 这里有一个关于如何在Kotlin上使用Retrofit的教程
你可以使用Retrofit
或者AsyncTask
, AsyncTask
例子:
class getData() : AsyncTask<Void, Void, String>() { override fun doInBackground(vararg params: Void?): String? { } override fun onPreExecute() { super.onPreExecute() } override fun onPostExecute(result: String?) { super.onPostExecute(result) } }
对于Retrofit
检查这个简单的教程