Получение statusCode 400 из GET - PullRequest
0 голосов
/ 12 мая 2018

Я пытаюсь получить от API, но он возвращает 400, я пытался поставить свой локальный IP и поставить 10.0.2.2, но он продолжал делать то же самое, в журнале событий показывает мне это тоже: Эмулятор: НЕ МОЖЕТ ПЕРЕВОДИТЬ гостевой DNS ip . Из PostMan я правильно возвращаю JSON, поэтому не думаю, что проблема в API

Здесь я делаю все

    public void PendingTrajects(){


     AsyncHttpClient client = new AsyncHttpClient();
       String URL = "http://ip:port/api/trajectes";
       client.get(this, URL, new AsyncHttpResponseHandler() {

       @Override
       public void onStart() {
           Toast.makeText(PendingTrajectRecyclerView.this, "Carregant...", Toast.LENGTH_SHORT).show();
       }

       @Override
       public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
           JSONArray Usuaris = new JSONArray();
           JSONArray trajectes = new JSONArray();

           String Nom = null;

           String strResponseBody = new String(responseBody);

           try {
               //Usuari = new JSONArray(strResponseBody);
               trajectes = new JSONArray(strResponseBody);
           }catch (JSONException e){
               Toast.makeText(PendingTrajectRecyclerView.this, "Error a la connexió", Toast.LENGTH_SHORT).show();
           }

           try {
               for(int i = 0; i < trajectes.length(); i++){
                   JSONObject trajecte = trajectes.getJSONObject(i);
                   JSONArray realitzas = trajecte.getJSONArray("realitzas");
                   for(int j = 0; j < realitzas.length(); j++){
                       JSONObject realitza = realitzas.getJSONObject(j);
                       JSONObject usuari = realitza.getJSONObject("usuari");
                       Log.d("xd", ""+usuari.getString("name"));
                   }
               }
           }catch (JSONException e){
               Toast.makeText(PendingTrajectRecyclerView.this, "Error a la connexió", Toast.LENGTH_SHORT).show();
           }
       }

       @Override
       public void onFailure(int statusCode, cz.msebera.android.httpclient.Header[] headers, byte[] responseBody, Throwable error) {
           Toast.makeText(PendingTrajectRecyclerView.this, "Error a la connexió ONFailure", Toast.LENGTH_SHORT).show();
           Log.d("Error",""+statusCode);
       }

   });

1 Ответ

0 голосов
/ 12 мая 2018

400 BAD REQUEST

Сервер не может или не будет обрабатывать запрос из-за того, что воспринимается как ошибка клиента (например,неправильный синтаксис запроса, неверное формирование сообщения запроса или обманчивая маршрутизация запроса).

Вам следует DEBUG вашего Приложения.Проверьте ваши параметры.Добавьте точку останова здесь

 String URL = "http://ip:port/api/trajectes";

На самом деле сервер не смог понять запрос из-за invalid syntax.

...