我想要的结果是这样:
http://192.168.100.140/fitbook/public/api/bookings_trainer/1?include=city,trainee,payment_type,
但是每当我尝试发送数据时, 使用我的代码:
final Call<BaseResponse<TrainerBookingInfo>> call = client.getTrainerBookings(SharePreferences.getUserId(context) ,"city,trainee,payment_type,");
@POST(GET_TRAINER_BOOKINGS )
Call<BaseResponse<TrainerBookingInfo>> getTrainerBookings(@Query("id") String id,
@Query("include") String include);
它变成了这样的东西:
http://192.168.100.140/fitbook/public/api/bookings_trainer?id=17&include=city%2Ctrainee%2Cpayment_type%2C
我如何删除“ id”
http://192.168.100.140/fitbook/public/api/bookings_trainer/1?include=city,trainee,payment_type,
我的代码有什么问题?
答案 0 :(得分:0)
默认情况下,翻新URL对字符进行编码,这在当前的网络应用程序中非常常见。 (,
变成%2C
)。您可以禁用如下所示的URL编码:
@POST(GET_TRAINER_BOOKINGS )
Call<BaseResponse<TrainerBookingInfo>> getTrainerBookings(@Query("id") String id,
@Query("include", encoded = true) String include);
这将使Retrofit知道不使用URL编码。
参数名称和值默认为URL编码(请指定{@link encode()编码= true} 更改此行为)。
更新第二个问题:
String GET_TRAINER_BOOKINGS = "http://192.168.100.140/fitbook/public/api/bookings_trainer/{id}";
@POST(GET_TRAINER_BOOKINGS)
Call<BaseResponse<TrainerBookingInfo>> getTrainerBookings(@Path("id") String id, @Query("include", encoded = true) String include);
在此处了解更多信息:https://square.github.io/retrofit/