Kotlin Retrofit,我用一个长字符串发出了一个 post 请求,但是当我检查服务器中的结果时,它充满了 \n 个字符
Kotlin Retrofit, I made a post request with a long string but when I checked the result in the server is full of \n characters
我正在使用 Retrofit 将数据发送到数据库,但保存的正文与我发送的不同
我正在以 base64 格式发送一张图片,但是当我检查文件时,我发现里面全是 /n 个空格
会发生什么?
问题出在名为 Adjunto 的变量上
代码:
改装供应商:
@Singleton
@Provides
fun provideRetrofit(): Retrofit {
return Retrofit.Builder()
.addConverterFactory(MoshiConverterFactory.create())
.baseUrl(Constans.BASE_URL)
.build()
}
我用过 Gson 转换器,但它不起作用
改装Api:
@POST("RS_Documentos")
suspend fun newDocument (@Body document: NewDocument): Response<DocumentResponse>
正文已发送:
override suspend fun newDocument(document: DocumentsItem): Resource<DocumentResponse> {
try {
var newDocument = NewDocument(
Adjunto = document.Adjunto,
Apellido = document.Apellido,
Ciudad = document.Ciudad,
Correo = document.Correo,
Identificacion = document.Identificacion,
Nombre = document.Nombre,
TipoAdjunto = document.TipoAdjunto,
TipoId = document.TipoId
)
var response = iDocumentDAO.newDocument(document = newDocument).body()
return Resource.Success(data = response!!)
} catch (e: Exception) {
return Resource.Error("The Document doesn't was created")
}
return Resource.Error("The Document doesn't was created")
}
}
现在部分base64图片:
base 64 sent
但是当我查看数据库中的图片时,似乎是这样的:
Base 64 Saved
我找到了解决方案。
问题出在发送 IDK 的正文中,为什么 val adjunto 有 \n 空格,但是当我清除 val adjunto 的空格和换行符时,文件被正确发送了。
这是新代码:
override suspend fun newDocument(document: DocumentsItem): Resource<DocumentResponse> {
try {
Log.d("Document email", document.Correo.toString())
val result= document.Adjunto!!.replace("\n","")
val newDocument = NewDocument(
adjunto = result,
apellido = document.Apellido!!,
ciudad = document.Ciudad!!,
correo = document.Correo!!,
identificacion = document.Identificacion!!,
nombre = document.Nombre!!,
tipoAdjunto = document.TipoAdjunto!!,
tipoId = document.TipoId!!
)
Log.d("Document Created", newDocument.toString())
val response = iDocumentDAO.newDocument(document = newDocument).body()
Log.d("Document Created", response.toString())
return Resource.Success(data = response!!)
} catch (e: Exception) {
return Resource.Error("The Document doesn't was created")
}
}
我正在使用 Retrofit 将数据发送到数据库,但保存的正文与我发送的不同
我正在以 base64 格式发送一张图片,但是当我检查文件时,我发现里面全是 /n 个空格
会发生什么?
问题出在名为 Adjunto 的变量上
代码:
改装供应商:
@Singleton
@Provides
fun provideRetrofit(): Retrofit {
return Retrofit.Builder()
.addConverterFactory(MoshiConverterFactory.create())
.baseUrl(Constans.BASE_URL)
.build()
}
我用过 Gson 转换器,但它不起作用
改装Api:
@POST("RS_Documentos")
suspend fun newDocument (@Body document: NewDocument): Response<DocumentResponse>
正文已发送:
override suspend fun newDocument(document: DocumentsItem): Resource<DocumentResponse> {
try {
var newDocument = NewDocument(
Adjunto = document.Adjunto,
Apellido = document.Apellido,
Ciudad = document.Ciudad,
Correo = document.Correo,
Identificacion = document.Identificacion,
Nombre = document.Nombre,
TipoAdjunto = document.TipoAdjunto,
TipoId = document.TipoId
)
var response = iDocumentDAO.newDocument(document = newDocument).body()
return Resource.Success(data = response!!)
} catch (e: Exception) {
return Resource.Error("The Document doesn't was created")
}
return Resource.Error("The Document doesn't was created")
}
}
现在部分base64图片:
base 64 sent
但是当我查看数据库中的图片时,似乎是这样的: Base 64 Saved
我找到了解决方案。
问题出在发送 IDK 的正文中,为什么 val adjunto 有 \n 空格,但是当我清除 val adjunto 的空格和换行符时,文件被正确发送了。
这是新代码:
override suspend fun newDocument(document: DocumentsItem): Resource<DocumentResponse> {
try {
Log.d("Document email", document.Correo.toString())
val result= document.Adjunto!!.replace("\n","")
val newDocument = NewDocument(
adjunto = result,
apellido = document.Apellido!!,
ciudad = document.Ciudad!!,
correo = document.Correo!!,
identificacion = document.Identificacion!!,
nombre = document.Nombre!!,
tipoAdjunto = document.TipoAdjunto!!,
tipoId = document.TipoId!!
)
Log.d("Document Created", newDocument.toString())
val response = iDocumentDAO.newDocument(document = newDocument).body()
Log.d("Document Created", response.toString())
return Resource.Success(data = response!!)
} catch (e: Exception) {
return Resource.Error("The Document doesn't was created")
}
}