Java 2复杂请求
我正在尝试使用2创建一个请求。我使用标准库创建了请求:Java 2复杂请求,java,android,retrofit2,Java,Android,Retrofit2,我正在尝试使用2创建一个请求。我使用标准库创建了请求: path = "https://www.iii.com/?id="+id+"&data="; query = "{\"name\":\""+name+"\",\"quantity\":20}"; 最后一个环节是: link = path+URLEncoder.encode(query, "UTF-8"); 我尝试了不同的改型2选项,但我不明白如何使用路径和url编码的查询将我的链接转换为改型2链接?您可以使用以下代码解析要改型的
path = "https://www.iii.com/?id="+id+"&data=";
query = "{\"name\":\""+name+"\",\"quantity\":20}";
最后一个环节是:
link = path+URLEncoder.encode(query, "UTF-8");
我尝试了不同的改型2选项,但我不明白如何使用路径和url编码的查询将我的链接转换为改型2链接?您可以使用以下代码解析要改型的GET查询参数:
@GET("https://www.iii.com")
Observable<ResponseBody> getSomething(
@Query("id") int id,
@Query("data") String data
);
@GET(“https://www.iii.com")
可观察到的东西(
@查询(“id”)int-id,
@查询(“数据”)字符串数据
);
改装将为您建造它。只需传递变量(假设您知道如何调用改装请求),改装将为您对其进行url编码。您可以参考此链接:
使用Reformation.stringConverter(类型,注释[])(或Object.toString(),如果未安装匹配的字符串转换器)将值转换为字符串,然后使用URL编码。忽略空值。传递列表或数组将为每个非空项生成一个查询参数
您可以使用以下代码分析GET查询参数以进行改装:
@GET("https://www.iii.com")
Observable<ResponseBody> getSomething(
@Query("id") int id,
@Query("data") String data
);
@GET(“https://www.iii.com")
可观察到的东西(
@查询(“id”)int-id,
@查询(“数据”)字符串数据
);
改装将为您建造它。只需传递变量(假设您知道如何调用改装请求),改装将为您对其进行url编码。您可以参考此链接:
使用Reformation.stringConverter(类型,注释[])(或Object.toString(),如果未安装匹配的字符串转换器)将值转换为字符串,然后使用URL编码。忽略空值。传递列表或数组将为每个非空项生成一个查询参数
你可以像下面那样为它添加涂鸦
@Headers("charset=UTF-8")
@GET("https://www.iii.com")
Observable<ResponseBody> getSomething(
@Query("id") int id,
@Query("data") String data
);
@Headers(“charset=UTF-8”)
@得到(”https://www.iii.com")
可观察到的东西(
@查询(“id”)int-id,
@查询(“数据”)字符串数据
);
您可以像下面这样添加一个选项
@Headers("charset=UTF-8")
@GET("https://www.iii.com")
Observable<ResponseBody> getSomething(
@Query("id") int id,
@Query("data") String data
);
@Headers(“charset=UTF-8”)
@得到(”https://www.iii.com")
可观察到的东西(
@查询(“id”)int-id,
@查询(“数据”)字符串数据
);
为此使用改型api,而不是手动构建url这是我想做的,但我不知道如何创建url改型为您创建它,阅读文档为什么不使用POST,因为您正在传递请求json正文?Tim,现在我正在使用改型,但我面临复杂的url和有关url的问题。如何使用@GET annotations进行构建。为此使用改型api而不是手动构建url这是我想做的,但我不知道如何创建url改型为您创建它,阅读文档为什么不使用POST,因为您正在传递请求json正文?Tim,现在我正在使用改型,但我面临着复杂的url和关于url的问题。如何使用@GET annotations.Tenten构建。谢谢,URLEncoder在哪里“data”部分?只需为“data”添加另一个@Query是的,但我需要如下内容:{“name”:“bob”,“quantity”:6}在url编码中。这不是一个简单的查询。你想做什么?根据我对您问题的理解,您只需要将手动构建链接转换为改装链接,只需将字符串query=“{\“name\”:\“bob\”,“quantity\”:6}传递给getSomething(id,query);改型将对其进行url编码。改型上的GET请求不处理JSON,您必须使用POST传递对象,改型将其转换为JSON。GET request只需为您处理url编码,但您仍需要传递json字符串。Tenten,谢谢,用于“数据”部分的URLEncoder在哪里?只需为“数据”添加另一个@Query是的,但我需要如下内容:{“名称”:“bob”,“数量”:6}在url编码中。这不是一个简单的查询。你想做什么?根据我对您问题的理解,您只需要将手动构建链接转换为改装链接,只需将字符串query=“{\“name\”:\“bob\”,“quantity\”:6}传递给getSomething(id,query);改型将对其进行url编码。改型上的GET请求不处理JSON,您必须使用POST传递对象,改型将其转换为JSON。GET请求只需为您处理url编码,但您仍然需要传递json字符串。感谢您的变体。感谢您的变体。