URL Retrofit 2.0 编码错误

URL encoding error in Retrofit 2.0

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

当我使用这个等号时,where 编码为 %3D,我的服务器 accept.I 不需要 = 符号 其中 在我的 api 电话中。

我的 link 是 图片?where=item_id=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("") 中写入查询参数,当您调用此方法时,将在运行时为其分配值,并且将值传递给 getimages 方法的 "item_id" 参数。

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

添加编码标志。

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

并编码 item_id,然后再传递给此方法。