当我尝试发布json并将结果作为json时,我得到响应代码500错误。但如果我用字符串请求尝试这个没有问题。我在stackoverflow上搜索了很多,还有其他像我这样的人有这个问题,但没有最新的解决方案。所以有人可以告诉我如何通过最新的方法(还有php方面)做json对象发布请求吗?
Android方面:
def increase_customers_processed_count
date = Date.today
record = self.user.customer_records.where('date > ?', 30.days.ago).first_or_create(date: date)
record.increase_count
end
PHP方面:
Map<String, String> map = new HashMap<String, String>();
map.put("user", username);
map.put("pass", password);
JsonObjectRequest sr = new JsonObjectRequest(Request.Method.POST, "http://www.example.com/example/.php?action=signin", new JSONObject(map), new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject result) {
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String,String> params = new HashMap<String, String>();
return params;
}
};
答案 0 :(得分:0)
我解决了这个问题,我的json对象中只有一个元素实际上是jsonarray。在我将jsonobjectrequest更改为jsonarrayrequest之后,问题就解决了。
答案 1 :(得分:0)
试试这个
JSONObject map = new JSONObject();
map.put("user", username);
map.put("pass", password);
JsonObjectRequest sr = new JsonObjectRequest(Request.Method.POST, "http://www.example.com/example/.php?action=signin", map, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject result) {
Log.e("ServiceCall", result.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("ServiceCall", error.toString());
}
});
RequestQueue mRequestQueue = Volley.newRequestQueue(<Activity>.this);
mRequestQueue.add(sr);
我认为你的json有问题..这就是为什么在服务器上 它抛出错误和服务器错误500来