请求处理Insomnia而不是Android?

时间:2018-02-12 17:48:22

标签: android kotlin android-volley

我对Insomnia有以下要求:

Params

Headers

哪个工作正常!

但是,如果我尝试在Android上使用volley执行此操作,我会收到“ServerError”:

fun createRequest() {
    val params = JSONObject()
    params.put("device_key", Settings.Secure.getString(contentResolver, Settings.Secure.ANDROID_ID))
    params.put("edition_date", "2018-02-12 00:00:00")
    params.put("publication", 1)

    val headers = hashMapOf<String, String>()
    headers["Authorization"] = "My Token"
    headers["Content-Type"] = "application/x-www-form-urlencoded"

    getPDF(this, params, headers)
}

fun getPDF(activity: Activity, params: JSONObject, headers: HashMap<String, String>) {
    val request = object : JsonObjectRequest(Request.Method.POST, "My URL", params,
    Response.Listener {
        print("asd")
    },
    Response.ErrorListener {
        it.printStackTrace() 
    }
    ) {
    override fun getHeaders(): Map<String, String> { return headers } }
    request.retryPolicy = DefaultRetryPolicy(0, DEFAULT_MAX_RETRIES, DEFAULT_BACKOFF_MULT)
    Volley.newRequestQueue(activity).add(request)
}

我只得到一个带有代码500的“ServerError”。 我在Android中可能做错了什么?我没有正确设置标题吗?或者可能是参数?

1 个答案:

答案 0 :(得分:1)

在Insomnia中,您正在发出请求,而正文是表单,而在Android中,您正在尝试发送JSON。确保您的正文包含键值对而不是JSON对象。