这是我第一次为项目使用dotNet Web API。 这是我的控制器的代码
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);
答案 0 :(得分:0)
共有3个选项。
首先是使用翻新的@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
注释。使用此选项,您需要在活动或片段中调用/使用getWaybillData()
方法之前准备完全限定的URL。请记住,@Url
方法会覆盖在Retrofit客户端中设置的基本URL。
@GET // notice the difference in your code and my code
Call<Waybill> getWaybillData(@Url String completeUrl);
如果您遵循第3个选项,则需要在活动中准备完整的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。