Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 2复杂请求_Java_Android_Retrofit2 - Fatal编程技术网

Java 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链接?您可以使用以下代码解析要改型的

我正在尝试使用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字符串。感谢您的变体。感谢您的变体。