add retrofit dependency android
implementation 'com.squareup.retrofit2:retrofit:2.4.0' implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
retrofit dependencies in android studio kotlin
// Retrofit implementation 'com.squareup.retrofit2:retrofit:2.6.0' implementation 'com.squareup.retrofit2:converter-gson:2.6.0' implementation "com.squareup.okhttp3:logging-interceptor:4.5.0"
retrofit android
def retrofit_version = "2.9.0" implementation "com.squareup.retrofit2:retrofit:$retrofit_version" implementation "com.squareup.retrofit2:converter-gson:$retrofit_version"
retrofit implementation
dependencies { implementation "com.google.code.gson:gson:2.8.7" implementation "com.squareup.retrofit2:retrofit:2.9.0" implementation "com.squareup.retrofit2:converter-gson:2.9.0" }
Source: guides.codepath.com
retrofit android
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
Source: square.github.io
retrofit kotlin
// FULL EXAMPLE FOR RETROFIT //add Retrofit dependencies to gradle file //file build.gradele implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' // create an interface for more flexibility // file MyAPI.kt interface MyAPI(){ // function calling to server // @Field("your_name_of_field") under this name we will receive our request on the server // Like if(isset($_POST("your_name_of_field"))){ do something } //PHP @FormUrlEncoded // required annotation @POST("server.php") // address of the page to which we send data and from which we receive a response fun SendAndGetPost( @Field("name") userName: String? @Field("password") userPass: String? ):Call<ResponsedData?>? // class ResponsedData.kt companion object{ private val client = OkHttpClient.Builder().build() operator fun invoke():MyAPI{ return Retrofit.Builder() // https://google.com/folder/ (path example) .baseUrl("https://yor_server_path/") .addConverterFactory(GsonConverterFactory.create()) .client(client) .build() .create(MyAPI::class.java) } } } // create a class to receive our response from the server // file ResponsedData.kt class ResponsedData{ val email: String? = null val age: String? = null //variable names must match the names sent from the server ! } // ActivityMain calls the function and get the data class ActivityMain : AppCompatActivity(){ override fun onCreate(savedInstance: Bundle){ super.onCreate(savedInstance) setContentView(R.layout.activity_main) val name = "myName" val password = "1234567" MyAPI().SendAndGetPost(name, password)?enqueue( object: CalBack<ResponsedData?>{ override fun onResponse( call: Call<ResponsedData?>, response: Response<ResponsedData?>) { if(!response.isSuccessful){ Log.e("API-ERROR", response.code().toString()) return }else{ // val answer: ResponsedData val answer = response.body() email.name age.password // data for use } } override fun onFalure( call: Call<ResponsedData?>, t: Throwable) { Log.e("API-ERROR", t.printStackTrace()) } }) } } --------------------- SERVER SIDE ------------------------------------------- // this is how the file on the server looks like // the path to which we registered in the interface of our application // file server.php <?php // Data Base includes // or any sources if(isset($_POST("name")) && isset($_POST("password"))){ $js = array( 'email'=>"some data from DB", 'age'=>"some data from DB" ); echo json_encode($js); exit(); } // all examples are taken from here // https://square.github.io/retrofit/