现在Retrofit2和RxJava2是很流行的框架,可能是我太闭塞的缘故,竟然没有用过这样的框架,请原谅我以前都是在用xUtils3
今天就来说一下Retrofit2和Kotlin结合上传文件
1、首先集成工具
(1)Kotlin就不用说了,Android Studio 3.0 以后自身就有
(2)Retrofit2集成 在项目文件build.gradle 里添加
**dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.support:design:26.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
implementation 'com.squareup.okhttp3:okhttp:3.9.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.9.0'
implementation 'com.squareup.retrofit2:retrofit:2.3.0'
implementation 'com.squareup.retrofit2:converter-scalars:2.3.0'
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
implementation 'com.squareup.retrofit2:adapter-rxjava:2.3.0'
}**
2、
(1)编写一个KtvApiService接口
/**
* 作者:Galen on 2017/12/16 13:56
* 邮箱:1270430761@qq.com
*/
interface KtvApiService {
@Multipart
@POST(FACE_DETECT)
fun detectFace(
@Part("api_key") api_key: RequestBody,
@Part("api_secret") api_secret: RequestBody ,
@Part("return_attributes") return_attributes: RequestBody ,
@Part part: MultipartBody.Part ): Call<DetectFaceResult>
@FormUrlEncoded
@POST(FACE_SET_GETDETAIL)
fun getFaceSetDetail(@Field("api_key") api_key: String,
@Field("api_secret") api_secret: String,
@Field("outer_id