Retrofit 2.0中的URL编码错误

时间:2017-02-15 06:45:38

标签: android retrofit retrofit2 urlencode cfurl-encoding

 @GET("images")
 Call<Example> getimages(@Query("where=item_id") int item_id);

当我使用它时,等于签名后,我的服务器不接受编码到%3D。我想在我的api调用中其中之后的 = 符号

我的链接是 图象?其中= ITEM_ID = 1

2 个答案:

答案 0 :(得分:1)

尝试这种方式:

@GET("images")
Call<Example> getimages(@Query("where") String item_id);

当你调用这个方法时,你必须通过这种方式:

Service service = retrofit.create(Service.class);
Call<Example> call = service.getimages("item_id=1");

如果您可以成功调用Api,则可以使用字符串连接动态传递值。

原因:传递查询参数时,您只需在@Query("")中编写查询参数,当您调用此方法并将值传递给&#时,将在运行时分配值。 34; ITEM_ID&#34; getimages方法的参数。

要了解有关Retrofit的更多信息,请参阅以下链接:https://futurestud.io/tutorials/tag/retrofit

答案 1 :(得分:0)

添加编码标志。

@GET("images")
Call<Example> getimages(@Query("where=item_id", encoded = true) String item_id);

并在将item_id传递给此方法之前对其进行编码。