BasicNetwork.performRequest: неожиданный код ответа 500 для моего URL - PullRequest
0 голосов
/ 19 февраля 2020

эта проблема была опубликована ранее, но, к сожалению, все ответы не решили мою проблему, мой API работает нормально в почтальоне, но я получаю непредвиденную ошибку с кодом 500 ответа при публикации в API, используя следующий код:

private void uploadPost(final String imageBase64) {
        if(imageBase64 == null) return;
        Toast.makeText(getApplicationContext(),":"+imageBase64.length(),Toast.LENGTH_LONG).show();
        SharedPreferences sharedPreferences = getSharedPreferences(SHAREDPREFNAME, Context.MODE_PRIVATE);
        final String textPost = ((EditText)findViewById(R.id.textPost)).getText().toString();
         JSONObject jsonIduser = null;
         String idUser = null;
        try {
            jsonIduser = new JSONObject(sharedPreferences.getString("currentUserInfo",null));
             idUser = jsonIduser.getString("id");
        } catch (JSONException e) {
            e.printStackTrace();
        }

        RequestQueue requestQueue = Volley.newRequestQueue(this);

        final String insertUrl = "http://192.168.101.1:8080/v1/create_post/";

        final String finalIdUser = idUser;
        final StringRequest stringRequest=new StringRequest(Request.Method.POST, insertUrl, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                Toast.makeText(getApplicationContext(),"ok",Toast.LENGTH_LONG).show();
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(getApplicationContext(),error.networkResponse.statusCode,Toast.LENGTH_LONG).show();
            }
        }){

            @Override
            public byte[] getBody() throws AuthFailureError {
              //  String str= MessageFormat.format("'{'\"idUser\": \"{0}\",\"textPost\" : \"{1}\",\"imagePost\"  : \"{2}\",\"datePost\" : \"{3}\"'}'", finalIdUser, textPost, imageBase64, System.currentTimeMillis());
                // String str="{\n" + "\"name\": \""+first+"\",\n" + "\"lastName\" : \"ahmed\",\n" + "\"email\"  : \"hhhhhh\",\n" + "\"password\"   :\"hhhhhhh\"\n" + "  }";
                String str= String.format("{\"idUser\": \"%s\",\"textPost\" : \"%s\",\"imagePost\"  : \"%s\",\"datePost\" : \"%d\"}", finalIdUser, textPost, imageBase64, System.currentTimeMillis());

                return str.getBytes();
            }

            @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");
                return headers;
            }

        };
        System.out.println("volley:"+stringRequest.getUrl());


        requestQueue.add(stringRequest);

    }

NB 0: для бэкэнда, я использую весеннюю загрузку.

NB 1: imageBase64 - переменная, которая содержит данные base64 изображения, его длину более 70000 символов, странно, когда я перезаписал эту переменную (imageBase64) простыми строковыми данными, такими как «xxxxxx», в результате весь мой код работает нормально, и моя ошибка исчезла !!

...