Restful вставка проблема - как это исправить? - PullRequest
0 голосов
/ 09 марта 2019

Чтобы пройти тест, нам нужно использовать какой-нибудь веб-сервис для получения данных из базы данных и отправки их в приложение для их использования.Все это прекрасно работает, но я застрял при отправке данных с Android на веб-сервис.Веб-служба отлично работает на компьютере (я могу поместить URL-адрес с параметрами в моем Firefox, он работает нормально и вставить без проблем), но если я пытаюсь вызвать этот URL-адрес с хорошими параметрами, но запустить его в моем приложении, это неничего не делай.Без ошибок (может быть, я просто не вижу их, я не знаком с отладчиком android studio).

private class WebServicePut extends AsyncTask<Void, Void, String>
{
    private final String url2 = "http://192.168.1.12:8080/PortPontrieuxWebService/webresources/emplacement/envoyer?nomBateau="+nomDuBateau+"&portBateau="+nomDuPort+"&dateArrivee="+DateDeDepart+"&dateDepart="+DateDeFin+"&reglement="+reglement+"&idEmpl="+idEmpl;
    @Override
    protected void onPreExecute()
    {
        super.onPreExecute();
        Toast.makeText(getApplicationContext(), "Début de requete insert", Toast.LENGTH_LONG).show();
    }


    @Override
    protected String doInBackground(Void... params)
    {
        try
        {
            HttpClient c2 = new DefaultHttpClient();
            HttpGet req2 = new HttpGet(url2);
            req2.addHeader("Accept", "application/json");
            req2.addHeader("Content-Type", "application/json");
            HttpResponse response = c2.execute(req2);
            BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
            String retourneWS = rd.readLine();
            return retourneWS;
        }
        catch (Exception e)
        {
            return null;
        }
    }
}

Вызов функции:

@GET
@Path("envoyer")
public void getJSON(@QueryParam("nomBateau") String pnomBateau,@QueryParam("portBateau") String pNomPort,@QueryParam("dateArrivee") String pdateArrivee,@QueryParam("dateDepart") String pdateDepart,@QueryParam("reglement") String pReglement,@QueryParam("idEmpl") String pIdEmpl)
{
    gestionPort.insertEtModif(pnomBateau, pNomPort, pdateArrivee, pdateDepart, pReglement, pIdEmpl);
}

И "insertEtModif"функция:

public static void insertEtModif(String nomBateau,String nomPort,String dateArrivee,String dateDepart,String reglement,String idEmplacement)
{
    try{
        CollectionEmplacements = new ArrayList<Emplacement>();
        Class.forName(pilote);                                  
        conn = DriverManager.getConnection(url,"root","");
        stmt = conn.createStatement();
        String req = "INSERT INTO `louer` (`nomBateau`, `portBateau`, `dateArrivee`, `dateDepart`, `reglement`, `emplacement_id`,`commentaire`) VALUES ('"+nomBateau+"', '"+nomPort+"', '"+dateArrivee+"', '"+dateDepart+"', '"+reglement+"', '"+idEmplacement+"','');";
        System.out.println(req);
        int retour2 = stmt.executeUpdate(req);
        stmt.close();
        conn.close();
        conn = DriverManager.getConnection(url,"root","");
        stmt = conn.createStatement();
        String req2 = "UPDATE `emplacement` SET `disponible` = '1' WHERE `emplacement`.`id` = "+idEmplacement ;
        System.out.println(req2);
        int retour = stmt.executeUpdate(req2);
        stmt.close();
        conn.close();
    }
    catch (SQLException e)
    {
        System.out.println(e.getMessage());
    }
    catch (ClassNotFoundException e)
    {
        System.out.println(e.getMessage());
    }
}

Я знаю, что мы используем не GET, а PUT обычно, но это было для проверки правильности URL-адреса, и он работает непосредственно в браузере (протестировано с Firefox).

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