我正在尝试使用Retrofit2创建一个请求。我使用标准库创建了请求:

path = "https://www.iii.com/?id="+id+"&data=";
query = "{\"name\":\""+name+"\",\"quantity\":20}";


最终链接为:

link = path+URLEncoder.encode(query, "UTF-8");


我尝试了不同的Retrofit2选项,但是我不明白如何使用路径和带有URL编码的查询将链接转换为Retrofit2链接?

最佳答案

您可以使用以下代码解析GET查询参数以进行改进:

@GET("https://www.iii.com")
Observable<ResponseBody> getSomething(
        @Query("id") int id,
        @Query("data") String data
);


改造将为您打造。只要传递您的变量(假设您知道如何调用改造请求),改造就会为您进行网址编码。您可以参考以下链接:https://square.github.io/retrofit/2.x/retrofit/index.html?retrofit2/http/Query.html


  使用Retrofit.stringConverter(Type,Annotation [])(或Object.toString(),如果未安装匹配的字符串转换器)将值转换为字符串,然后进行URL编码。空值将被忽略。传递列表或数组将为每个非空项目产生一个查询参数。

10-04 16:12