在这个得到的库中,我试图实现一个像这样的简单网址..... http://www.retrofitHorrible.com/somePath/someAnother/?searchCriteria[tooHorrible]等等。问题是Retrofit我猜不会处理这种情况,好像我尝试这样做
@GET("somePath/someAnother/")
Call<ProductModel> getProductsList(@Query("searchCriteria") String appendedUrl);
这部分会给我这样的网址
?searchCriteria=searchCriteria[tooHorrible]
...这个网址甚至是什么?
无论如何,如果我尝试
@Path(value="searchCriteria" encoded=false)
它会给我%3FsearchCriteria[tooHorrible]
这样的网址,其中%3F是得到的?标记,我试图实施更多那个月,我尝试了这个库的每个可能的解决方案。
无论如何没有任何作用,我想要的是建立一个像这样的简单该死的网址
?searchCriteria[tooHorrible] is this too much for asking for this library?
在世界上我甚至可以构建这样的URL?因为以上所有都是不正确的,不起作用!
答案 0 :(得分:0)
我认为您的问题的解决方案是添加查询参数... 请尝试使用以下链接查找如何在网址中进行查询。
https://futurestud.io/blog/retrofit-multiple-query-parameters-of-same-name
答案 1 :(得分:0)
这不是Retrofit的错。这是apache解释请求的方式。
你犯了两个错误: 1:传递查询参数的值,否则apache将无法获取它。正确检查API文档。 2:但是,如果您希望使用不带查询参数值的URL重写URL规则,方法是在服务器上创建.htaccess文件,如下所示:
RewriteCond %{QUERY_STRING} (?:^|&)searchCriteria[tooHorrible]$
RewriteRule ^api/?$ xyz.php?searchCriteria=tooHorrible[NC,L]
我想这就是你想要的东西。 请查看this链接,了解有关重写规则的更多信息。请查看this链接,了解有关正则表达式的信息。Good Article有关重写的信息。
请说明您的网址。否则没人会帮忙。希望这可以帮助 :) 升