[Android Studio] Метод залпового возврата GET возвращает ошибку 400.ПОСТМАН может работать - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь отправить jsonrequest на сервер моего проекта с параметром и хочу получить jsonObject в качестве ответа. Ниже мой код.

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, Const.URL_SERVER_STOCK, null
            , new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            System.out.println("Response is: "+response.toString());
            test.setText(response.toString());
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d(TAG,"Error: " + error
                    + "\nStatus Code " + error.networkResponse.statusCode
                    + "\nResponse Data " + error.networkResponse.data.toString()
                    + "\nCause " + error.getCause()
                    + "\nmessage" + error.getMessage());
        }
    }){
        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            Map<String, String> header = new LinkedHashMap<String, String>();
            header.put("Content-Type", "text/plain;charset=UTF-8");
            return super.getHeaders();
        }
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String,String> params = new HashMap<String, String>();
            params.put("stockId", String.valueOf(id));
            return params;
        }
    };
    AppController.getInstance().addToRequestQueue(jsonObjectRequest);

Вот что я получил:

I/System.out: id passing: 2
E/Volley: [3415] BasicNetwork.performRequest: Unexpected response code 400 for http://cs309-jr-4.misc.iastate.edu:8080/stock
D/str_log_req: Error: com.android.volley.ClientError
    Status Code 400
    Response Data [B@e14f879
    Cause null
    messagenull

Ниже мой РЕЗУЛЬТАТ ПОСТМАНА: введите описание изображения здесь введите описание изображения здесь

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

Volley getParam () можно использовать для метода POST, а не для метода GET. Следуйте инструкциям ниже для деталей: https://www.itsalif.info/content/android-volley-tutorial-http-get-post-put

0 голосов
/ 06 марта 2019

Так как это GET, вы должны включить параметры в свой URL

Const.URL_SERVER_STOCK + "?stockId=" + selectedId;
...