android - Volley : BasicNetwork. performRequest:意外的响应代码 500

标签 android json android-studio postman android-volley

我试图通过 volley 库向我的服务器发送一个发布请求。但它不起作用。我已经在 Postman 中测试了我的 API,它在那里工作。我使用了相同的参数。

我得到的错误:

BasicNetwork.performRequest: Unexpected response code 500 for 
https://demo.homexpress.in/api/make_an_order
2020-06-23 08:57:46.163 9351-9351/com.apitechno.grocery W/System.err: com.android.volley.ServerError
2020-06-23 08:57:46.164 9351-9351/com.apitechno.grocery W/System.err:     at 
com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:205)
2020-06-23 08:57:46.164 9351-9351/com.apitechno.grocery W/System.err:     at 
com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:131)
2020-06-23 08:57:46.164 9351-9351/com.apitechno.grocery W/System.err:     at 
com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:111)
2020-06-23 08:57:46.164 9351-9351/com.apitechno.grocery W/System.err:     at 
com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:90)

这是我发送请求的函数:

  private void continueUrl(final String todaydate,final String timeslot,final ArrayList<HashMap<String, String>> map) {
    StringRequest stringRequest = new StringRequest(Request.Method.POST, OrderContinue, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            Log.d("ordermake",response);
            try {
                JSONObject jsonObject = new JSONObject(response);
                String status = jsonObject.getString("status");
                String msg = jsonObject.getString("message");
                if (status.equals("1")){

                    JSONObject object = jsonObject.getJSONObject("data");

                    cart_id = object.getString("cart_id");
                    Intent intent=new Intent(getApplicationContext(),PaymentDetails.class);

                    intent.putExtra("order_amt",txt_totalPrice.getText().toString());
                    startActivity(intent);
                }


                else {
                    Toast.makeText(getApplicationContext(),msg,Toast.LENGTH_SHORT).show();
                }
                progressDialog.dismiss();
            } catch (JSONException e) {
                e.printStackTrace();
            }
            progressDialog.dismiss(); }


    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            error.printStackTrace();
        }
    })

    {

        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            HashMap<String,String> headers = new HashMap<>();
            headers.put("Content-Type","application/json");
            return headers;
        }
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            HashMap<String,String> param = new HashMap<>();
            param.put("time_slot",timeslot);
            param.put("address_id",ad_id);
            param.put("user_id",user_id);
            param.put("delivery_date",todaydatee);
            param.put("delivery_charge",DeliveryCharge.getText().toString());

            param.put("order_array", array.toString());
                Log.d("tag", param.toString());
            return param;
        }


    };
    RequestQueue requestQueue = Volley.newRequestQueue(OrderSummary.this);
    requestQueue.add(stringRequest);

}

Log.d("标签", param.toString());打印这个:

{delivery_date=2020-06-23, delivery_charge=0, user_id=185, order_array= 
[{"qty":"1","varient_id":"55","product_image":"images\/product\/16-06-2020\/good.jpg"}], 
address_id=8, time_slot=13:00 - 16:00}

这是 postman 的快照:

enter image description here

最佳答案

好吧,我浪费了将近一天的时间才找到解决方案。

如果你遇到同样的问题,做一件事:

  @Override
    public Map<String, String> getHeaders() throws AuthFailureError {
        HashMap<String,String> headers = new HashMap<>(); 

        /*change content-type to "application/x-www-form-urlencoded" from 
         "application/json"
         */

        headers.put("Content-Type","application/x-www-form-urlencoded");
        return headers;
    }

关于android - Volley : BasicNetwork. performRequest:意外的响应代码 500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62526938/

相关文章:

android - onItemAtEndLoaded() 方法仅被调用一次并且不会在分页库中再次重试

android - WebView 拉动刷新

android - 我可以在 Ad 关闭/onAdDismissed - AdMob 时调用 loadMethod 吗?

json - 如何根据模式中的定义进行验证?

javascript - 从服务器请求 JSON 对象?

android - Git - Android Studio 不再允许我提交更改并推送到 GitHub

java - 如何使用 3 个参数 Map<> 请求数据? Java-Android Studio

android - 小米拒绝单声道共享运行时安装请求(xamarin.android)

json - 如何在环回模型定义 JSON 文件中定义嵌入式属性

android-studio - 定义全局 android.widget var/val 时为 "lateinit"或 "by lazy"