Как решить BasicNetwork.performRequest: неожиданный код ответа 500 в залп - PullRequest
0 голосов
/ 08 мая 2019

Я использую API на сервере, но получаю сообщение об ошибке:

BasicNetwork.performRequest: неожиданный код ответа 500 & onErrorResponse: ошибка: ноль

Я попробовал все, но не работает вообще. Пожалуйста, помогите.

Это код для создания массива JSON, так как мне нужен один параметр в виде массива JSON.

         private void createJSONOrder() {


    String firstDay = etDate1.getText().toString() + "##" + etStartTime1.getText().toString() + "##" + etEndTime1.getText().toString();
    String secondDay = etDate2.getText().toString() + "##" + etStartTime2.getText().toString() + "##" + etEndTime2.getText().toString();
    selectionItems.add(firstDay);
    selectionItems.add(secondDay);
    String[] blist = new String[selectionItems.s¬ize()];
    Log.e("tag", "array" + blist.length + selectionItems);

    for (int i = 0; i < selectionItems.size(); i++) {
        blist[i] = selectionItems.get(i);
    }
    Log.e("tag", "arrayList" + blist[0]);
    weekdata = new JSONArray();
    for (int i = 0; i < blist.length; i++) {
        weekdata.put(blist[i]);   // create array and add items into that
    }


    Log.e("TAG", "jsonProduct: " + weekdata);
    generataeInvoiceApi();

}

Код для вызова API:

          private void generataeInvoiceApi() {
    String tag_json_obj = "json_obj_req";
    String url = Constants.GENERATE_INVOICE;


    pBar.setVisibility(View.VISIBLE);

    final SessionManager session = new SessionManager(getActivity());
    final HashMap<String, String> loggedDetail = session.getLoggedDetail();
    HashMap<String, String> params = new HashMap<String, String>();

    params.put("package_id", package_id);
    params.put("week", weekName);
    params.put("weekdata", weekdata.toString());


    Log.e("Tag", "generateInvoiceParam:" + params);

    JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
            url, new JSONObject(params),
            new Response.Listener<JSONObject>() {

                @Override
                public void onResponse(JSONObject response) {

                    Log.e("generate_response", response.toString());


                    pBar.setVisibility(View.GONE);

                }

            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            VolleyLog.e("Error: " + error.getMessage());
            // handle error
            pBar.setVisibility(View.GONE);
        }
    }) {

        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            HashMap<String, String> headers = new HashMap<String, String>();
            headers.put("Content-Type", "application/json; charset=UTF-8");
            headers.put("Authorization", "Bearer " + loggedDetail.get("api_token"));
            return headers;
        }
    };


    jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(
            100000,
            DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));


    AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);
}
  }

И параметры, которые я отправляю, имеют формат:

     {weekdata=["2019-04-01##2:15##2:15","2019-04-03##2:15##2:15"], package_id=44, week=Apr 01, 2019}

Все хорошо. URL работает на конце iOS, но не в моем приложении. Как я могу решить это?

1 Ответ

0 голосов
/ 08 мая 2019

Попробуйте изменить

HashMap<String, String> params = new HashMap<String, String>();

К

 JSONObject params = new JSONObject();
...