使用 GET 方法在改造 url 中编码
Posted
技术标签:
【中文标题】使用 GET 方法在改造 url 中编码【英文标题】:Encoding in retrofit url with GET method 【发布时间】:2020-01-07 15:32:36 【问题描述】:我无法在我的 URL 端点中添加特殊字符“&”。 这是我的api接口
@GET("api/v1/products/artworks/")
Call<TaskData> getLatestTaskData(@Header("Authorization") String token,
@Query("limit") Integer limit,
@Query("offset") String offset);
被调用的 URL
artworks/?limit=50&offset=0%26ordering%3D-artwork
这就是我调用 api 的方式
String url = Integer.toString(totalitemsCalledLatest) +"&ordering="+ ordering;
Call<TaskData>
call = taskApiInterface.getLatestTaskData("Token "+ user_token, 50, url);
我的排序字符串类似于 &medium=1&base=2 但它会自动将 & 转换为 %26 和 = 转换为 %3D
【问题讨论】:
【参考方案1】:编辑:假设您遇到与 api 的连接问题,我认为您只需要从 GET URL 的末尾删除“/”,如下所示:api/v1/products/artworks 或至少这是一个帮助您更接近解决问题的解决方案
【讨论】:
我的 GET URL 中的一切都是正确的,我只想附加最后一个带有 & 和 = 符号的参数,但它将它们分别转换为 %26 和 %3D 你能给我一个正确请求的例子吗? 我的正确请求看起来像这个 products/artworks/?limit=50&offset=0&ordering=-artwork Retrofit 会自动转换字符串字符,因此如果您尝试在请求中添加另一个查询/参数,最好像其他参数一样将其添加为 @Query。所以你会有第四个订购 不,我的排序字符串类似于 &medium=1&base=2 ,它将 & 转换为 %26 并将 = 转换为 %3D以上是关于使用 GET 方法在改造 url 中编码的主要内容,如果未能解决你的问题,请参考以下文章