Intereting Posts

Как сделать запрос API в Котлине?

Я чрезвычайно новичок в Kotlin и API в целом и не могу найти синтаксис для создания запроса API с использованием этого языка. Я создаю мобильную версию веб-сайта, поэтому я использую Android Studio для создания нового пользовательского интерфейса для уже созданного бэкэнд. Каковы шаги и синтаксис для создания запроса? Любая помощь глубоко ценится.

Как только вы установили, что Android Studio использует 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()) }) } } 

Я создал более сложный пример в этом репозитории, я использовал Dagger, RxJava, Retrofit в MVP.

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

Retrofit – хороший инструмент для использования API на Android. Вот учебник, который я нашел о том, как использовать Retrofit на Kotlin

Вы можете использовать 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 проверить этот awsome учебник