我想向 URL 包含单引号字符的 api 发送请求。我正在使用retrofit2。
我希望此网址能够到达 api: http://someapp.somecompany.com/api/contents/inc() ?$filter=_Id%20eq%20'57fb60534421dd35544b27a9'
我尝试了带有 (encoded=true) 和 (encoded=false) 属性的 @Query 和 @QueryMap 注释,但我的尝试都不起作用。
MyClient(界面)
@PUT("api/contents/inc()")
Call<Object> addLike(@QueryMap(encoded =true) Map<String,String> options);
MainActivity( Activity )
Map<String,String> likeMap = new HashMap<>();
likeMap.put("$filter","_Id%20eq%20'57fb60534421dd35544b27a9'");
Call<Object> addLikeCall = myClient.addLike(likeMap);
addLikeCall.enqueue(new Callback<Object>() {.....});
这段代码给了我这个输出:
--> 放置 http://someapp.somecompany.com/api/contents/inc() ?$filter=_Id%20eq%20%2757fb60534421dd35544b27a9%27 http/1.1(0 字节正文)
<-- 500 内部服务器错误 http://someapp.somecompany.com/api/contents/inc() ?$filter=_Id%20eq%20%2757fb60534421dd35544b27a9%27(132ms,36字节主体)
如何避免在 url 中对单引号进行编码?
谢谢。
最佳答案
关于android - 如何避免Retrofit在HTTP URL中编码单引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39976241/