Android 改装后请求不起作用,i';m获取500个错误代码(内部服务器错误)
我有500个内部服务器错误,每次当我试图通过改装发送POST请求时。当我发送GET请求时,它对我有效。下面的代码在kotlin中 代码Android 改装后请求不起作用,i';m获取500个错误代码(内部服务器错误),android,kotlin,retrofit2,Android,Kotlin,Retrofit2,我有500个内部服务器错误,每次当我试图通过改装发送POST请求时。当我发送GET请求时,它对我有效。下面的代码在kotlin中 代码 val token = (activity as MainActivity).stockService.status.getTocken() val client = OkHttpClient.Builder().addInterceptor { chain -> val newRe
val token = (activity as MainActivity).stockService.status.getTocken()
val client =
OkHttpClient.Builder().addInterceptor { chain ->
val newRequest: Request = chain.request().newBuilder()
.addHeader("Authorization", "Bearer $token")
.addHeader("Content-Type", "application/json")
.build()
chain.proceed(newRequest)
}.build()
val gson = GsonBuilder()
.setLenient()
.create()
val retrofit: Retrofit = Retrofit.Builder()
.client(client)
.baseUrl("https://example.com")
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create(gson))
.build()
val service = retrofit.create(RestClient::class.java)
val paramObject = JSONObject()
paramObject.put("disclosed_quantity", 0)
paramObject.put("exchange", "abd")
paramObject.put("instrument_token", 3045)
paramObject.put("order_tag", "test_order")
paramObject.put("order_type", "CHECK")
val call = service.createUser(paramObject.toString())
call.enqueue(object : Callback<Any> {
override fun onFailure(call: Call<Any>, t: Throwable) {
Toast.makeText(activity, "Failed :$t", Toast.LENGTH_SHORT).show()
}
override fun onResponse(call: Call<Any>, response: Response<Any>) {
Toast.makeText(
activity,
"Sucess ${response.body()},${response.code()}, ${response.errorBody()}",
Toast.LENGTH_SHORT
).show()
}
})
val标记=(活动作为MainActivity.stockService.status.getTocken()
val客户端=
OkHttpClient.Builder().addInterceptor{chain->
val newRequest:Request=chain.Request().newBuilder()
.addHeader(“授权”、“持有人$token”)
.addHeader(“内容类型”、“应用程序/json”)
.build()
链。继续(新请求)
}.build()
val gson=GsonBuilder()
.setLenient()
.create()
val改装:改装=改装.Builder()
.客户(客户)
.baseUrl(“https://example.com")
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create(gson))
.build()
val service=reformation.create(RestClient::class.java)
val paramObject=JSONObject()
paramObject.put(“数量”,0)
paramObject.put(“交换”、“abd”)
paramObject.put(“仪器令牌”,3045)
paramObject.put(“订单标签”、“测试订单”)
paramObject.put(“订单类型”、“检查”)
val call=service.createUser(paramObject.toString())
排队(对象:Callback{
覆盖失效时的乐趣(调用:调用,t:可丢弃){
Toast.makeText(活动,“失败:$t”,Toast.LENGTH\u SHORT.show())
}
覆盖fun onResponse(调用:调用,响应:响应){
Toast.makeText(
活动,
“成功${response.body()},${response.code()},${response.errorBody()}”,
吐司长度
).show()
}
})
RestClient
interface RestClient {
@POST("/api/v2/order")
fun createUser(@Body order: String): Call<Any> }
接口RestClient{
@POST(“/api/v2/订单”)
fun createUser(@Body order:String):Call}
但当我试着在邮局投递时,邮递员工作得很好。我得到了正确的回答,我不知道我哪里做错了
提前感谢您最好不要使用
JSONObject
创建paramObject
。将这项工作委派给这样的改装工作要容易得多:
// Create Order object
class Order(
val disclosed_quantity: Int,
val exchange: String,
val instrument_token: String,
val order_tag: String,
val order_type: String
)
// Use it as @Body
@POST("api/v2/order")
fun createUser(@Body order: Order): Call<Any>
//创建订单对象
阶级秩序(
val\U数量:整数,
val交换:字符串,
val仪器\u标记:字符串,
val order_标记:字符串,
val订单类型:字符串
)
//将其用作@Body
@邮政(“api/v2/订单”)
fun createUser(@Body order:order):调用“新URL解析概念”您尝试了http post请求并进行了改装,服务器向您发出了500个错误代码的响应,您尝试了http get请求并使用浏览器进行了运行。您是否尝试了http get请求的改型?你检查服务器日志了吗?有什么错误吗?您好,我尝试通过改造获取请求,但没有发布…我没有访问服务器日志的权限。。。