Ich bin neu in der Nachrüstung von 2-Bibliotheken. Ich habe mehrere Artikel gelesen, um als Anfänger zu beginnen, und es ist mir gelungen, XML-Daten von meiner RESTful-API abzurufen, ohne Parameter anzugeben. Meine Methode, die die XML-Ressource generiert hat, ist unten aufgeführt.
@GET
@Path("/foods")
@Produces(MediaType.APPLICATION_XML)
public List<FoodPyramid> getFoodPyramid() {
Session session = HibernateUtil.getSessionFactory().openSession();
trans = session.beginTransaction();
List<FoodPyramid> foodList = session.createQuery("from FoodPyramid").list();
try {
trans.commit();
session.close();
} catch (Exception e) {
session.close();
System.err.println("Food Pyramid fetch " + e);
}
System.err.println("Am in the food modal. . . . . . . .");
return foodList;
}
Nun, als ich versuchte, Parameter in der Schnittstelle zu übergeben
@GET("user/{username}/{password}")
Call<List<UserCredentail>> getUserOuth(@Query("username") String username, @Query("password") String password);
Es konnte nicht ausgeführt werden, es wurden keine Daten von einem Client empfangen. Es dauerte eine Woche, bis ich versuchte, das Problem zu beheben, indem ich die Ressourcen mithilfe eines Nicht-Parameter-Aufrufs abrief. Also versuchte ich es zu ändern in:
@GET("user/{username}/{password}")
Call<List<UserCredentail>> getUserOuth(@Path("username") String username, @Path("password") String password);
und es hat gut funktioniert. Meine Frage lautet also: Wann muss ich @Query
und @Path
Annotation in Retrofit 2 verwenden?