Дооснащение преобразователем Джексона пустое тело запроса - PullRequest
0 голосов
/ 01 ноября 2018

У меня проблемы с публикацией данных с помощью преобразователя Джексона. Тело запроса всегда пусто.

Вот мой код. Метод вызова:

@POST("mood")
fun getMoods(@Body body: MoodsRequestBody): Call<List<String>>

Запросить класс кузова:

internal data class MoodsRequestBody(val userId: String, val thought: String)

Экземпляр API:

private val client = OkHttpClient.Builder()
        .apply {
            if (BuildConfig.DEBUG) addInterceptor(CurlLoggingInterceptor())
        }
        .build()

private val mapper = jacksonObjectMapper()
        .disable(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES,
                 DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,
                 DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
        .enable(DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT,
                DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT)
        .setSerializationInclusion(JsonInclude.Include.NON_NULL)
        .disable(SerializationFeature.FAIL_ON_EMPTY_BEANS)

private val retrofit = Retrofit.Builder()
        .baseUrl("http://<base url here>")
        .client(client)
        .addConverterFactory(JacksonConverterFactory.create(mapper))
        .build()

private val api: Api = retrofit.create(Api::class.java)

А вот лок, который я получаю в журнале:

curl -X POST --data $'{}' "http://<base url here>/mood"

Как видите, тело запроса пусто. Я думаю, что это не становится сериализованным. Пожалуйста, помогите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...