MainHttpClient.kt 1.92 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11
package com.bgycc.smartcanteen.server.http

import com.bgycc.smartcanteen.AppConfig
import com.bgycc.smartcanteen.BuildConfig
import com.bgycc.smartcanteen.util.LogUtil
import okhttp3.*
import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Call
import retrofit2.Response
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
patpat committed
12
import retrofit2.converter.scalars.ScalarsConverterFactory
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
import java.io.File
import java.util.concurrent.TimeUnit

object MainHttpClient {

    val TAG = MainHttpClient::class.java.simpleName

    private val mClient: Retrofit

    init {
        val httpBuilder = OkHttpClient.Builder()
            .connectTimeout(6, TimeUnit.SECONDS)
            .readTimeout(6, TimeUnit.SECONDS)
            .writeTimeout(6, TimeUnit.SECONDS)

        if (BuildConfig.DEBUG) {
            val interceptor = HttpLoggingInterceptor(HttpLoggingInterceptor.Logger {
                LogUtil.i(TAG, it)
            })
            interceptor.level = HttpLoggingInterceptor.Level.BODY
            httpBuilder.addInterceptor(interceptor)
        }

        mClient = Retrofit.Builder()
            .client(httpBuilder.build())
            .baseUrl(AppConfig.getMainHttpServerHost())
patpat committed
39
            .addConverterFactory(ScalarsConverterFactory.create())
40 41 42
            .build()
    }

patpat committed
43
    fun uploadLog(file: File, fileName: String) {
44
        val requestBody = RequestBody.create(MediaType.parse("application/x-zip-compressed"), file)
patpat committed
45 46 47
        val multipartBody = MultipartBody.Part.createFormData("file", fileName, requestBody)
        mClient.create(CommonApi::class.java).upload(multipartBody).enqueue(object : retrofit2.Callback<String> {
            override fun onFailure(call: Call<String>, t: Throwable) {
48 49
                LogUtil.i(TAG, "onFailure")
            }
patpat committed
50
            override fun onResponse(call: Call<String>, response: Response<String>) {
51 52 53 54 55
                LogUtil.i(TAG, "onResponse")
            }
        })
    }
}