Как добавить строку JSON в запрос POST с помощью kotlin и ktor?
При выводе строки Json, прочитанной из файла, или даже созданной строки с помощью Kotlin в клиенте, содержимое выглядит как JSON.
Тем не менее сервер не может распознать строку как JSON, и когда я печатаю ее на сервере, каждая двойная квота обрезается обратно.
Очевидно, что клиент добавляет обратную косую черту, поэтому запрос не отформатирован должным образом.
Клиент Kotlin - Код Ktor:
import com.google.gson.*
import io.ktor.client.*
import io.ktor.http.*
...
val client = HttpClient(OkHttp) {
install(JsonFeature) {
serializer = GsonSerializer()
}
}
val fileContent = MyClass::class.java.getResource("myfile").readText()
println("fileContent string = $fileContent")
val out = client.post<String> {
url(url)
contentType(ContentType.Application.Json)
body = fileContent
}
распечатка выглядит так:
{ "name": "myname", "value": "myvalue" }
но сервер (кстати, я использую hookbin, чтобы распечатать данные без преобразований Джексона) распечатывает:
{ \"name\": \"myname\", \"value\": \"myvalue\" }