当前位置: 首页 > 知识库问答 >
问题:

POST改造2x原始JSONArray字符串在静态编程语言

马新觉
2023-03-14

如何发布原始jsonArray字符串在kotlin使用改造

我在onFailure方法上有超时响应

这是我想发布的字符串数组示例

[{"username":"username4"},{"username":"username2"}]

这是我的endpoint定义

@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()}")
                    }
                }
           }
    )

这里是使用邮递员的成功帖子示例

谢谢你的帮助:)

共有1个答案

胡修伟
2023-03-14

我通过添加以下依赖项来解决此问题:

implementation 'com.squareup.retrofit2:converter-scalars:$version'

现有多种数据格式的改装转换器。可以将Java对象序列化和反序列化为JSON、XML或任何其他数据格式,反之亦然。在可用的转换器中,您还可以找到一个改进的Scalars转换器,它负责解析要放入请求体中的任何Java原语。转换适用于两个方向:请求和响应。https://futurestud.io/tutorials/retrofit-2-how-to-send-plain-text-request-body

 类似资料:
  • 我当前的项目使用Kotlin序列化来使用一系列远程RESTFul API。 API响应是Json,我无法修改它们。 其中一个API将“Person”作为字符串或字符串数组返回。 我如何让Kotlin序列化自动消耗任何一个值? 我使用这个版本的静态编程语言序列化

  • 我试图用OkHttp和Cucumber在静态编程语言中设置一个Spring启动项目,并且在运行Cucumber任务时遇到以下错误。如何修复? 还有build gradle kts片段 我看到了这个错误https://github.com/square/okio/issues/647看起来可能是它,并修复了这个build.gradle,我如何将其翻译为kotlinbuild.gradle.kts?

  • 我经常想保存一个不能为空或空白的字符串 - 空格不够好。编译器很好地处理以防止空值,我们可以使用来检查它是空的还是空白的。但是,这要求在使用它的所有位置处理空白检查,然后在空白时处理错误,如果错过了某个位置,这可能会导致意外错误。 是否有一种更简单的方法来定义的类型或扩展名,以强制字符串不能为空?

  • 如图所示,https://stackoverflow.com/a/16639438/8949356,在Java中,当声明的类是公共类时,可以重写其函数 但是我想知道如何用静态编程语言编写完全相同的代码,我已经尝试了很多,但没有找到任何关于这个主题的东西。我可以在Java中去做这件事,但我的其余代码是用静态编程语言编写的,而且我不能一直带着这种怀疑;静态编程语言对我来说是一个很好的工具,我想学习它。

  • 我需要在Android 9.0上使用静态编程语言1.4.32中的Room 2.3迁移我的数据库。在我的初始数据库中,我的日期是一个字符串(即“2021-06-03T22:54:15.406-07:00[America/Los_Angeles]”),我想在迁移期间将其迁移到和Int(即toEpochII)。看来我应该能够使用中的游标来遍历我的数据并进行转换,但是当我进行查询时,我的游标计数为-1。

  • 我在静态编程语言中扩展ArrayAdapter时遇到了问题。 这里的代码: 编辑与ArrayAdapter扩展无关。我的问题是构装师的理解。