如何使用改造在kotlin中发布原始jsonArray字符串
对 onFailure 方法具有超时响应
这是我要发布的字符串数组的示例
[{“ username”:“ username4”},{“ username”:“ username2”}]
这是我的端点定义
@Headers("Content-Type: application/json;charset=UTF-8")
@POST("insert/createuser")
fun postuser(@Body logs:String ):Call<ArrRes>
这是我的课程
class ArrRes{
@SerializedName("username")
@Expose
var username: String = ""
@SerializedName("message")
@Expose
var message: String = ""
@SerializedName("status")
@Expose
var status: String = ""
}
这是我的发布方式
var obj = JSONObject(); var arr = JSONArray();
for (i in 0 until 5){
obj.put("username","username${i}");
arr.put(obj);
}
Log.i("app:sync","${arr.toString()}")
mService!!.postuser(arr.toString()).enqueue(
object : Callback<LogResponse> {
override fun onFailure(call: Call<LogResponse>, t: Throwable) {
Log.i("app:retro:service", "onFailure ${t.message}")
}
override fun onResponse(call: Call<LogResponse>, response: Response<LogResponse>) {
if (response.isSuccessful()) {
Log.i("app:retro:service", "onResponse true ${response.body()!!.toString()}")
} else {
Log.i("app:retro:service", "onResponse false ${response.raw().toString()}")
}
}
}
)
这是使用邮递员的成功案例示例
感谢您的帮助:)
答案 0 :(得分:0)
我通过添加以下依赖项来解决此问题:
implementation 'com.squareup.retrofit2:converter-scalars:$version'
现有多种用于各种数据格式的翻新转换器。您可以将Java对象序列化和反序列化为JSON或XML或任何其他数据格式,反之亦然。在可用的转换器中,您还会找到Retrofit Scalars转换器,它可以解析要放入请求正文中的所有Java原语。转换适用于两个方向:请求和响应。 https://futurestud.io/tutorials/retrofit-2-how-to-send-plain-text-request-body