每次尝试通过Retrofit发送POST请求时,我都有500个内部服务器错误。当我发送GET请求时对我有用。下面的代码在kotlin中。
代码
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()
}
})
RestClient
interface RestClient {
@POST("/api/v2/order")
fun createUser(@Body order: String): Call<Any> }
但是当我在POSTMAN中尝试POST时工作正常。我得到正确的响应,我不知道我哪里做错了。
提前感谢您
您已经尝试了带有改造的http post请求,并且服务器已使用500错误代码响应您,并且您已尝试使用浏览器http get请求并且它已经起作用。您是否尝试过通过改造来获取 http 请求?是否检查了服务器日志?是否有任何错误?
最好不要使用 JSONObject 创建参数
对象
。像这样将此工作委派给Retrofit要容易得多:
// 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>
第二个问题可能出在您的 URL 中“/api/v2/order”。
我认为它应该是“api / v2 / order”
而不开始/
基本URL:总是以/结尾
@Url:不要以/开头
更多细节https://inthecheesefactory.com/blog/retrofit-2.0/en“新URL解析概念”
每次我试图通过改装发送POST请求时,我都有500个内部服务器错误。当我发送GET请求时,它会正确发送。我确信服务器端的一切都正常。我的代码怎么了? 请求声明:
我正试图通过Axios在本地发送一个POST请求,其中包含用户名和密码。 我正在部署一个Flask应用程序http://127.0.0.1:5000/login,它处理/login路由。POST请求失败,出现以下错误 我研究了一点,认为这可能是CORS的问题,但情况似乎并非如此,因为我尝试了一个Axios GET请求,它工作正常(响应记录正确)。这是我的部分代码 查看ChromeDevTools,
我正在使用图像上传base64Encode字符串对api调用进行改造。它发送的数据完美,但改装返回响应内部服务器错误500,我发送的请求类型是Body自定义类。请帮我做什么。
问题内容: 我正在尝试为这个工作中的项目学习AJAX。我有一个网站加载病人正在服用的药物。 我递归调用此AJAX函数,以便它将附加一个包含单种药物和7天历史记录的新表。我在使代码在FF和IE中执行时遇到问题。在chrome中效果很好。我有显示xmlhttp.status的警报,这是我得到的: xmlhttp.status == 500(内部服务器错误)。 我注释掉了所有递归,因此将其范围缩小到了这
我收到以下错误 内部服务器错误 服务器遇到内部错误或配置错误,无法完成您的请求。 请联系服务器管理员,webmaster@strivemedicare.in并告知他们错误发生的时间,以及可能导致错误的任何行为。 有关此错误的详细信息,请参阅服务器错误日志。 此外,尝试使用错误文档处理请求时遇到 500 内部服务器错误错误。
我在Windows 8.1机器上使用XAMPP。我在cgi-bin中放置了一个基本的hello world python脚本。我可以从命令行运行脚本而不会出现错误,但当我尝试从浏览器调用它时,我会收到错误500。错误日志指出: [2017年9月29日星期五11:06:36.996021][cgi:错误][pid 5696:tid 1728][客户端192.168.1.6:49556]AH01215