2017-07-20 229 views
10

我对Kotlin和API一般都很陌生,无法找到使用此语言创建API请求的语法。我正在创建网站的移动版本,因此我正在使用Android Studio为已建立的后端创建新的用户界面。创建请求的步骤和语法是什么?任何帮助深表谢意。如何在Kotlin中创建API请求?

+2

看看这篇文章:http://codeflex.co/simple-restful-service-with-kotlin-and-spring-boot/ –

回答

9

一旦你有set your Android Studio to use Kotlin是做一个REST调用非常简单,它与Java的逻辑几乎相同。


这里有一个REST调用与OkHttp一个例子:

的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()) 
     }) 
    } 
} 

我在这个库中创建一个更复杂的例子中,我使用匕首,RxJava,在改造MVP。

https://github.com/Evin1-/Kotlin-MVP-Dagger2-RxJava-Retrofit

+1

非常感谢您的详细答复。这肯定会帮助我取得一些进展。 – Nutters

2

Retrofit是一个在Android上使用API​​的好工具。 Here是一个教程我如何使用改造的科特林

3

可以使用RetrofitAsyncTask,例如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检查这个要命tutorial