2017-07-20 227 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