Как вызвать dotnet api из Retrofit? - PullRequest
       12

Как вызвать dotnet api из Retrofit?

0 голосов
/ 02 октября 2018

В этот день я впервые использую веб-API dotNet для своего проекта.Это код моего контроллера

public IEnumerable<Waybill> Get(string id_wb) {
    List<Waybill> lstWaybill = new List<Waybill>();
    lstWaybill = objway.GetWaybill(id_wb).ToList();
    return lstWaybill;
}

Этот API может хорошо работать, если я звоню по этой ссылке:

http://localhost:56127/api/waybill/?id_wb=00000093

, но я не знаю, как вызвать эту ссылкуиз моего приложения для Android (я использую модификацию)

@GET("Waybill/{id_wb}/id_wb")
Call<Waybill> getWaybillData(@Path("id_wb") String id_wb);

1 Ответ

0 голосов
/ 02 октября 2018

Есть 3 варианта.

Первый Один должен использовать аннотацию Retrofit @Query.

@GET("Waybill/")
Call<Waybill> getWaybillData(@Query("id_wb") String id_wb);

Один второй один@Path аннотация

@GET("Waybill/?id_wb={id_wb}")    // notice the difference in your code and my code
Call<Waybill> getWaybillData(@Path("id_wb") String id_wb);

третий параметр должен использовать @Url аннотацию.С помощью этой опции вам нужно подготовить полный URL-адрес перед вызовом / использованием метода getWaybillData() в вашей деятельности или фрагменте.Помните, что метод @Url переопределяет базовый URL-адрес, установленный в клиенте Retrofit.

@GET    // notice the difference in your code and my code
Call<Waybill> getWaybillData(@Url String completeUrl);

Если вы используете третий вариант, вам нужно подготовить полный URL-адрес в своей деятельности, как показано ниже.

String url = "http://<server_ip_address>:56127/api/waybill/?id_wb=00000093";
YourInterface api = ...
Call<Waybill> call = api.getWaybillData(url);
call.enqueue({/* implementation */});

Я вижу разницу в упомянутом вами примере URL и использовании в интерфейсе Retrofit API.

В примере URL waybill мало, а в интерфейсе API - Waybill.Пожалуйста, убедитесь, что вы используете правильный URL.

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