Запрос всегда возвращает нуль в API, даже если сделан запрос с хешем.Код запроса: 500 - PullRequest
0 голосов
/ 30 марта 2019

Мы пытаемся отправить запрос DELETE со страницы приложения в наш API, но, похоже, ничего не работает.Запрос выглядит нормально, трижды проверил, что отправляемая им хеш-карта содержит соответствующие данные.Даже код запроса возвращает «500».Однако в нашем API он получает ответ в порядке и запрашивает номер для выполнения функции удаления.Значение всегда возвращается null.

Работает нормально, если вы отправляете запрос на Postman, а не на приложение.

Мы попытались изменить хэш-карту нацелое число и строка, тройная проверка URL-адреса, установка точек останова в API без особого везения при обнаружении проблемы, разбивка запроса и ответа в API, чтобы увидеть, возвращает ли он что-либо.

API:

protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws IOException
{   

    System.out.println("Request: " + req + " Response: "  + resp);

    writer= resp.getWriter();

    resp.setContentType("text/html;charset=UTF-8"); 
    System.out.println(req);
        Integer  ID = Integer.parseInt(req.getParameter("vehicle_id"));

    System.out.println("ID: " + ID);

    boolean delete = false;

    delete = dao.deleteVehicle(ID);

    if(delete) 
        {
        writer.write("Vehicle Deleted! Vehicle_ID: " + ID);
        }
    else 
    {
        writer.write("Error");
        }

    writer.close();

}

}

Приложение (запрос):

                try {
                    String response = "";
                    URL url = new URL("http://10.0.2.2:8005/vehicles/api");
                    // create the connection object
                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                    connection.setReadTimeout(15000);
                    connection.setConnectTimeout(15000);
                    connection.setRequestMethod("DELETE");

                    //write/send/POST data to the connection using output stream and buffered
                    OutputStream OS = connection.getOutputStream();
                    BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(OS, "UTF-8"));

                    // write/send/POST key/value data (url encoded) to the server
                    final HashMap<String, String> hash = new HashMap<>();
                    String id = String.valueOf(v.getVehicle_id());
                    hash.put("vehicle_id", id);
                    hash.put("make", v.getMake().toString());
                    //!!!
                    writer.write(getDeleteDataString(hash));
                    //!!!
                    System.out.println("HELP: " + getDeleteDataString(hash));
                    // clear the writer
                    writer.flush();
                    writer.close();
                    // close output stream
                    OS.close();
                    int responseCode = connection.getResponseCode();
                    System.out.println("responseCode =  " + responseCode);
                    if (responseCode == HttpsURLConnection.HTTP_OK) {
                        //Toast.makeText(this, "Vehicle Saved Successfully!", Toast.LENGTH_LONG).show();
                        String line;
                        BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                        while ((line = br.readLine()) != null) {
                            response += line;
                        }
                    } else {
                        Toast.makeText(vehicleDetails.this, "Failed To Delete Vehicle", Toast.LENGTH_LONG).show();
                        response = "";
                    }



                    Intent intent1 = new Intent(getApplicationContext(), MainActivity.class);
                    startActivity(intent1);
                } catch (Exception e) {
                    e.printStackTrace();
                }

В результате следует удалить файл с соответствующим идентификатором, хотяКажется, что объект не прошел.

Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...