【发布时间】:2020-10-04 11:56:43
【问题描述】:
我的 POST 方法遇到了一些问题,error=400 是“错误请求”。
我尽可能地简化了我的代码以使其正常工作,但仍然出现 400。我错过了什么吗?是我这边还是服务器的问题?
代码:
FormApiInterface.kt
interface FormApiInterface {
@POST("/forms/filledForm")
fun sendTrashForm(@Body filledForm: TempFilledForm): Call<TempFilledForm>
}
MenuActivity.kt
class MenuActivity : AppCompatActivity() {
private lateinit var apiInterface : FormApiInterface
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(activity_main)
val apiClient = OkHttpClient().newBuilder().build()
val retrofit = Retrofit.Builder()
.baseUrl(URL_POST)
.client(apiClient)
.addConverterFactory(GsonConverterFactory.create())
.build();
apiInterface = retrofit.create(FormApiInterface::class.java)
}
fun sendTrash() {
val tempFilledForm = TempFilledForm(
userLogin = "filledForm?.userLogin",
formId = "filledForm?.userLogin",
formVersion = "filledForm?.formVersion",
formStatus = "filledForm?.formStatus",
form = "filledForm?.formFieldsData")
val call: Call<TempFilledForm> = apiInterface.sendTrashForm(tempFilledForm)
call.enqueue(object : Callback<TempFilledForm> {
override fun onFailure(call: Call<TempFilledForm>?, t: Throwable?) {
Log.v("retrofit", "call failed")
}
override fun onResponse(call: Call<TempFilledForm>?, response: Response<TempFilledForm>?) {
Log.v("retrofit", response.toString())
}
})
}
我在我的 Activity 的一些 onClick 中调用 sendTrash() 并且响应类似于
V/retrofit: Response{protocol=http/1.1, code=400, message=, url=http:--------(covered it)}
“类似”问题都没有帮助。在此先感谢您的帮助
【问题讨论】:
-
你是否添加了拦截器,它将记录从 api 响应收到的详细错误日志
标签: android kotlin post retrofit retrofit2