Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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
Http 使用ARest框架在kotlin中创建带有请求体的GET方法_Http_Kotlin_Get_Jax Rs_Path Parameter - Fatal编程技术网

Http 使用ARest框架在kotlin中创建带有请求体的GET方法

Http 使用ARest框架在kotlin中创建带有请求体的GET方法,http,kotlin,get,jax-rs,path-parameter,Http,Kotlin,Get,Jax Rs,Path Parameter,我正在使用kotlin中的ARest框架建立一个由GET、DELETE和POST方法API组成的新服务 我将输入包装在一个数据类中,并将其传递给方法。在这种情况下,DELETE-and-POST方法可以很好地工作,但我在GET方法中遇到了一些问题 用于包装输入的数据类: class GetRequest(@QueryParam("aaa") var aaa: String? = null, @QueryParam("

我正在使用kotlin中的ARest框架建立一个由GET、DELETE和POST方法API组成的新服务

我将输入包装在一个数据类中,并将其传递给方法。在这种情况下,DELETE-and-POST方法可以很好地工作,但我在GET方法中遇到了一些问题

用于包装输入的数据类:

class GetRequest(@QueryParam("aaa") var aaa: String? = null,
                                        @QueryParam("bbb") var bbb: String? = null,
                                        @QueryParam("ccc") var ccc: UserDefinedType? = null)
模型定义:

@GET
@Path("getStatus/")
@Produces(MediaType.APPLICATION_JSON)
fun getStatus(@NotNull @BeanParam getRequest: GetRequest) : GetResponse
我用大摇大摆的方式调用这些方法, 请求正文:

{
  "aaa": "string",
  "bbb": "string",
  "ccc": "HEAD"
}
我的理解是,@BeanParam将把查询中相应的参数注入到数据类中。但从swagger我发现请求URL为,
https://:8090/api/getStatus,找不到任何查询参数。因此,“aaa”的值保持为空,而不是更改为“字符串”。有人能帮我指出我在这里犯的错误吗?

资源和数据类希望参数作为查询参数,但您将它们发送到正文中。您应该改为将它们作为查询参数发送(
getStatus?aaa=string&bbb=string&ccc=HEAD
),或者如果您希望在正文中发送它们(不建议用于
GET
请求),您必须修改代码,例如:

@GET
@Path("getStatus/")
@Produces(MediaType.APPLICATION_JSON)
fun getStatus(getRequest: GetRequest) : GetResponse

class GetRequest(var aaa: String? = null,
                 var bbb: String? = null,
                 var ccc: UserDefinedType? = null)

资源和数据类需要参数作为查询参数,但您可以在正文中发送它们。您应该改为将它们作为查询参数发送(
getStatus?aaa=string&bbb=string&ccc=HEAD
),或者如果您希望在正文中发送它们(不建议用于
GET
请求),您必须修改代码,例如:

@GET
@Path("getStatus/")
@Produces(MediaType.APPLICATION_JSON)
fun getStatus(getRequest: GetRequest) : GetResponse

class GetRequest(var aaa: String? = null,
                 var bbb: String? = null,
                 var ccc: UserDefinedType? = null)