I'm new working with retrofit in Android. I create a service using IIS where I load a JSON like this:
 [{"Id":1,"Name":"Product1","Price":9.99}, 
 {"Id":2,"Name":"Product2","Price":19.99}, 
 {"Id":3,"Name":"Product3","Price":29.99}, 
 {"Id":4,"Name":"Product4","Price":39.99}, 
 {"Id":5,"Name":"Product5","Price":49.99},
  ...]
I'm able to use the retrofit instruction @GET to bring some specific data. But when I try to implement @QUERY or @HEADER the results I receive are not what I expect. For example:
I have my interface:
public interface ServiceProduct {
@GET("api/Product/{id}")
Call<ManagerProduct> getFindShop(@Path(value="id") String productID);
@GET("api/Product")
Call<ManagerProduct> getHeader(@Header("Name") String header);
}
My ManagerProduct.java class is this:
public class ManagerProduct {
@SerializedName("Id")
@Expose
private Integer id;
@SerializedName("Name")
@Expose
private String name;
@SerializedName("Price")
@Expose
private Double price;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
The way I'm calling the Service is using retrofit:
private void LoadProduct() {
    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(baseUrl)
            .addConverterFactory(GsonConverterFactory.create())
            .build();
    ServiceProduct serviceProduct = retrofit.create(ServiceProduct.class);
    Call<ManagerProduct> listProduct = serviceProduct.getHeader("Product2");
    listProduct.enqueue(new Callback<ManagerProduct>() {
        @Override
        public void onResponse(Call<ManagerProduct> call, 
   Response<ManagerProduct> response) {
            if (response.isSuccessful()) {
                listManagerProduct=response.body();
                for (int i=0;i<listManagerProduct.size();i++){
           System.out.println(listManagerProduct.get(i).getPrice());
                }
            }
        }
        @Override
        public void onFailure(Call<List<ManagerShop>> call, Throwable t) {
        }
    });
}
As I result I expected 19.99 but Instead, I receive 9.99,19.99,29.99,39.99,49.99.
What I'm doing wrong?
As additional information, searching for information I found this question: retrofit 2 @path Vs @query
With the answer:
Consider this is the URL:
  www.app.net/api/searchtypes/862189/filters?Type=6&SearchText=School
Now this is the call:
 @GET("/api/searchtypes/{Id}/filters")
 Call<FilterResponse> getFilterList(@Path("Id") long customerId,
      @Query("Type") String responseType,
      @Query("SearchText") String searchText);
So we have:
  www.app.net/api/searchtypes/{Path}/filters?Type={Query}&SearchText={Query}
Things that come after the ? are usually queries.
If I try to write the URL and query directly in the browser:
 http://server/api/Product?Name=Product2
I received the full JSON. So I don't know if I implement wrong the service. I'm totally lost I have read a lot and I don't understand.
Any help, please?
 
    