当前位置: 首页 > 知识库问答 >
问题:

Volley在Lollipop设备中收到400个错误请求,但与邮递员一起工作

子车才捷
2023-03-14

我正在使用volley库我的volley请求在牛轧糖,奥利奥,棉花糖操作系统工作完美,但它不工作在Lollipop设备,它给出错误服务器错误,我处理了错误,我发现错误是400坏请求,我正在分享错误屏幕截图,也分享了我的代码,请帮助我,我的api也工作在邮递员...

我的请求代码是:

    private void proceedToCheakOut(){

        String tag_string_req = "req_check_out_data";
        String uri = AppConfig.URL_CHECK_OUT
                + "?userid=" + preferences.getString(SharedPref.KEY_USER_ID, "")
                + "&hotelid=" + preferences.getString(SharedPref.KEY_HOTEL_ID,"")
                + "&band=" + preferences.getString(SharedPref.KEY_BAND_ID, "")
                + "&area=" + preferences.getString(SharedPref.KEY_SEARCH_AREA, "")
                + "&check_in=" + preferences.getString(SharedPref.KEY_CHECK_IN, "")
                + "&check_out=" + preferences.getString(SharedPref.KEY_CHECK_OUT, "")
                + "&room=" + preferences.getString(SharedPref.KEY_ROOM, "")
                + "&adult=" + preferences.getString(SharedPref.KEY_ADULT, "")
                + "&above=" + preferences.getString(SharedPref.KEY_ABOVE_8, "")
                + "&below=" + preferences.getString(SharedPref.KEY_BELOW_8, "")
                + "&spouse=" + preferences.getString(SharedPref.KEY_SPOUSE, "")
                + "&days=" + preferences.getString(SharedPref.KEY_NO_OF_DAYS, "")
                + "&roomid=" + preferences.getString(SharedPref.KEY_ROOM_ID, "")
                + "&" + SharedPref.KEY_DEFENCE_ID + "=" + preferences.getString(SharedPref.KEY_DEFENCE_ID, "")
                + "&spousePrice=" + spousePrice
                + "&adultPrice=" + adultPrice
                + "&abovePrice=" + abovePrice
                + "&belowPrice=" + belowPrice
                + "&price=" + price
                + "&tax=" + tax
                + "&grandTotal=" + grandTotal
                + "&userName=" + adult1Data
                + "&userRank=" + RankData
                + "&adultList=" + adultsArray
                + "&aboveList=" + childaboveArray
                + "&belowList=" + childbelowArray;

        Log.e("URI", uri);
        StringRequest strReq = new StringRequest(Request.Method.GET,
                uri, new Response.Listener() {
            @Override
            public void onResponse(String response) {
                try {
                    JSONObject jObj = new JSONObject(response);
                    boolean error = jObj.getBoolean("error");
                    // Check for error node in json
                    if (!error) {
                        Toast.makeText(CheckoutPersonalDetailActivity.this, "Booking Successful", Toast.LENGTH_SHORT).show();
                        Intent intent = new Intent(CheckoutPersonalDetailActivity.this, BookingDoneActivity.class);
                        intent.putExtra("grandTotal", grandTotal);
                        intent.putExtra(SharedPref.KEY_BOOKING_ID, jObj.getString("bookingid"));
                        intent.putExtra(SharedPref.KEY_BOOKING_DATE, jObj.getString("bookingdate"));
                        intent.putExtra(SharedPref.KEY_BOOKING_STATUS, jObj.getString("bookingstatus"));
                        intent.putExtra("reminderhour", jObj.getString("reminderhour"));
                        intent.putExtra("HotelImageString", hotelImgString);
                        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
                        startActivity(intent);
                        String title = "Booking Pending";
                        String description = "Booking is Pending, Your Booking Id is: "+ jObj.getString("bookingid");
       sendNotification(title, description, jObj.getString("bookingid"));
} else {
                      Toast.makeText(CheckoutPersonalDetailActivity.this,jObj.getString("error_msg"), Toast.LENGTH_LONG).show();
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                if (error == null || error.networkResponse == null) {
                    return;
                }
               String body;
                //get status code here
                final String statusCode = String.valueOf(error.networkResponse.statusCode);
                try {
                    body = new String(error.networkResponse.data,"UTF-8");
                    Toast.makeText(CheckoutPersonalDetailActivity.this, "Error: "+body, Toast.LENGTH_LONG).show();

                } catch (UnsupportedEncodingException e) {
                    // exception
                }

            }

        });
        // Adding request to request queue
        AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
    }

共有1个答案

林烨华
2023-03-14

啊啊啊!最后我解决了我的问题,这段代码帮我...

uri = uri.replaceAll(" ", "%20");
 类似资料:
  • 我的api基url是: https://locodealapi.herokuapp.com/api/deals 在邮递员传球,跟随在头和它的工作很好。 OKHTTP日志拦截器 注意:相同的代码在本地nodejs服务器(仅限http)中运行良好

  • 我正试着在邮递员上打API。API正在服务器上工作,但我没有收到任何数据。以下是视觉图像: 它是回应我与“没有数据”和400错误的要求。

  • 我正在尝试使用Postman访问API,以使用基本身份验证获取响应,但当我提交数据时,它会给我带来可怕的400错误,这显然表明某些标头设置不正确。 以下是API信息: 作为回应,我应该得到一个JSON形式的加密令牌,而不是得到这个错误。 以下是邮差截图: 我错过了什么吗?

  • 我正在开发一个Registraion API,它接受以下/request perameters的json输入 但是当我从android应用程序调用时,它给出了错误的响应,错误代码为,但在Postman上工作得很好。 我的API客户端 衷心感谢

  • 在我的Laravel应用程序中,我需要定期使用Guzzle将数据发送到API。 API使用承载令牌进行身份验证,并请求和接受原始JSON。为了进行测试,我使用Postman访问了API,一切都工作得很好。

  • 我有一个非常基本的webApi构建/运行(相当模板应用程序,仅此而已),以便遵循一个培训视频。GET和DELETE调用工作正常,PUT和POST给出400错误。诚然,对所有这些都很新,所以我正在寻找一些基本的方向,关于如何排除故障。相关的屏幕截图如下,我很高兴提供其他要求。提前谢了。