改造 GET 请求调用
Retroft GET Request Call
有很多例子,但我没有找到我真正想要的(没明白)所以如果有人愿意提供帮助,我们将不胜感激。
使用 post 我知道我们会执行以下操作:
@POST("/SearchFor")
@FormUrlEncoded
void SearchFor(@Field("QueryID")String QueryID,@Field("ElementID")String ElementID,@Field("Language")String Language, Callback<Response> cb);
然后在成功和失败时实施。
现在开始获取:
我想要作为输出的 URL 是:
URL+=BASE_URL+"?QueryID="+ID+"&ElementID=where%20"+INPUTFLDDBNAME+"%20like'%25"+Value+"%25'&Language="+interfacelang+"";
ID,INPUTFLDDBNAME,interfacelang 将替换为字符串
所以我做了以下事情:
@GET("/QueryID={QueryID}&ElementID=where%20{ElementID}%20like'%25{Value}%25'&Language={Language}")
void SearchFor(@Path("QueryID")String QueryID,@Path("ElementID")String ElementID,@Path("Value")String Value,@Path("Language")String Language, Callback<Response> cb);
但显然它不起作用并出现以下错误:
No Retrofit annotation found. (parameter #1)
我是这样称呼它的
Retrofit Retrofit=new Retrofit();
RestAPI PushNotificationWebService=Retrofit.SetRestAdapter("BASE_URL");
PushNotificationWebService.SearchFor(ID,fields.get(0).getText().toString(),INPUTFLDDBNAME,interfacelang,new Callback<Response>() {
@Override
public void success(Response response, Response response2) {
...
请有人指导我,将不胜感激。
您应该使用 @Query()
将查询参数添加到您的基础 URL
@GET("/SearchFor")
void SearchFor(@Query("QueryID") String QueryID, @Query("ElementID") String ElementID,@Query("Language") String Language, Callback<Response> cb)
然后按照以下方式使用:
String element = URLEncoder.encode(String.format("where %s like'%%%s%%'", element_id, value));
PushNotificationWebService.SearchFor(ID, element, ...)
有很多例子,但我没有找到我真正想要的(没明白)所以如果有人愿意提供帮助,我们将不胜感激。
使用 post 我知道我们会执行以下操作:
@POST("/SearchFor")
@FormUrlEncoded
void SearchFor(@Field("QueryID")String QueryID,@Field("ElementID")String ElementID,@Field("Language")String Language, Callback<Response> cb);
然后在成功和失败时实施。
现在开始获取:
我想要作为输出的 URL 是:
URL+=BASE_URL+"?QueryID="+ID+"&ElementID=where%20"+INPUTFLDDBNAME+"%20like'%25"+Value+"%25'&Language="+interfacelang+"";
ID,INPUTFLDDBNAME,interfacelang 将替换为字符串
所以我做了以下事情:
@GET("/QueryID={QueryID}&ElementID=where%20{ElementID}%20like'%25{Value}%25'&Language={Language}")
void SearchFor(@Path("QueryID")String QueryID,@Path("ElementID")String ElementID,@Path("Value")String Value,@Path("Language")String Language, Callback<Response> cb);
但显然它不起作用并出现以下错误:
No Retrofit annotation found. (parameter #1)
我是这样称呼它的
Retrofit Retrofit=new Retrofit();
RestAPI PushNotificationWebService=Retrofit.SetRestAdapter("BASE_URL");
PushNotificationWebService.SearchFor(ID,fields.get(0).getText().toString(),INPUTFLDDBNAME,interfacelang,new Callback<Response>() {
@Override
public void success(Response response, Response response2) {
...
请有人指导我,将不胜感激。
您应该使用 @Query()
将查询参数添加到您的基础 URL
@GET("/SearchFor")
void SearchFor(@Query("QueryID") String QueryID, @Query("ElementID") String ElementID,@Query("Language") String Language, Callback<Response> cb)
然后按照以下方式使用:
String element = URLEncoder.encode(String.format("where %s like'%%%s%%'", element_id, value));
PushNotificationWebService.SearchFor(ID, element, ...)