Retrofit上传Json数据

首先将要上传的数据转换成为Json数据,可以用Gson直接转换或者用JSONObject类,将HashMap数据转换为Json,这里使用后面一种方式来实现,代码如下:

// 将数据封装为map类型
val params = HashMap<String, String>()
            params["message"] = feedbackContent
            params["from"] = feedbackContact
            params["ghversion"] = BuildConfig.VERSION_NAME
            params["channel"] = ""
            params["type"] = android.os.Build.MODEL
            params["sdk"] = android.os.Build.VERSION.SDK_INT.toString()
            params["version"] = android.os.Build.VERSION.RELEASE

//将Map转换为JSONObject
val jsonObject = JSONObject(params)
// 最后将JsonObject转换为字符串,封装为Retrofit的RequestBody,
val body = RequestBody.create(MediaType.parse("application/json"),jsonObject.toString())

定义一个Retrofit上传到服务器的POST接口方法:

    /**
     * 上传文本型数据
     */
    @Headers("Content-Type: application/json", "Accept: application/json")
    @POST("suggestions")
    fun postFeedback(@Body body: RequestBody) : Single<ResponseBody>

最后在ViewModel中用Retrofit调用这个这个方法即可.

 mApiService.postFeedback(body)
                    .subscribeOn(Schedulers.io())
                    .subscribe({
                        feedbackLiveDate.setValue(true)
                    }, {
                        errorLiveData.postValue("提交反馈失败 ${it.message}")
                    })
        }

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值