我尝试通过 Volley 发布 JSON 请求并收到错误 BasicNetwork.performRequest: 意外响应代码 500 该API URL在POSTMAN中测试正常,可以被IOS版本应用调用。
我怀疑 headers 值没有添加到我的代码中(如果我错了,请纠正我)
我尝试在代码中添加 getHeaders()
函数,但似乎不起作用。有人可以告诉我如何解决这个问题吗?
这是我当前的代码:-
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.clipped_product_page)
setTitle("Clipped Product")
val actionbar = supportActionBar
actionbar?.setDisplayHomeAsUpEnabled(true)
actionbar?.setDisplayHomeAsUpEnabled(true)
val URL = "https://api.sample.com/Api/user_id"
val json = JSONObject()
json.put("user_id", "1")
json.put("code", "AB")
val jsonOblect = object : JsonObjectRequest(
Request.Method.POST,
URL,
json,
Response.Listener {response ->
// Get your json response and convert it to whatever you want.
Toast.makeText(this, "You Clicked: $response", Toast.LENGTH_SHORT).show()
},
Response.ErrorListener {
Toast.makeText(this, "Error $it .message", Toast.LENGTH_SHORT).show()
}
) {
@Throws(AuthFailureError::class)
override fun getHeaders(): Map<String, String> {
val headers = HashMap<String, String>()
headers.put("Content-Type", "application/json")
return headers
}
}
VolleySingleton.getInstance(this).addToRequestQueue(jsonOblect)
}
如何实现这一目标并将输出转换为数组列表?
请帮忙谢谢。
最佳答案
使用 Volley 发送post请求
String URL = "";
JSONObject json = new JSONObject();
json.put("email", "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="73121110331211105d101c1e" rel="noreferrer noopener nofollow">[email protected]</a>");
json.put("password", "");
json.put("user_type", "");
JsonObjectRequest jsonOblect = new JsonObjectRequest(Request.Method.POST, URL, json, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
// Get your json response and convert it to whatever you want.
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// Error
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
final Map<String, String> headers = new HashMap<>();
headers.put("Authorization", "TOKEN");//put your token here
return headers;
}
};
VolleyApplication.getInstance().addToRequestQueue(jsonOblect);
关于android - 如何通过带有 header 的 volley 发布 JSON 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57798428/