Volley JsonObjectRequest错误响应代码500

时间:2015-10-07 22:09:34

标签: android json http android-volley jsonobjectrequest

当我尝试发布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;
        }
    };

2 个答案:

答案 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来