gpt4 book ai didi

json - Grails 将请求作为 JSON 发送并在 Controller 中解析它

转载 作者:行者123 更新时间:2023-12-04 15:01:31 27 4
gpt4 key购买 nike

我想以 JSON 的形式发送请求,并且在我的 Controller 中我想解析这个 JSON 并获取我想要的参数。例如这是请求:

{"param1":"val1"}

我想解析这个请求并获得“param1”值。我使用 request.JSON 但我仍然为空。有没有其他方法可以解决这个问题?

谢谢,

最佳答案

您可以使用以下之一来测试您的东西(这两个选项最终都可以重新用作自动化测试 - 单元和集成):

为您的 Controller 编写单元测试,例如(无需启动服务器):

void testConsume() {
request.json = '{param1: "val1"}'
controller.consume()
assert response.text == "val1"
}

假设您的 controller.consume() 执行以下操作:
def consume() {
render request.JSON.param1
}

或者您可以使用例如 Jersey 客户端对这次部署的 Controller 进行调用:
public void testRequest() {
// init the client
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);

// create a resource
WebResource service = client.resource(UriBuilder.fromUri("your request url").build());
// set content type and do a POST, which will accept a text/plain response as well
service.type(MediaType.APPLICATION_JSON).accept(MediaType.TEXT_PLAIN).put(Foo.class, foo);
}

,其中 foo 是这样的 Foo:
@XmlRootElement
public class Foo {
@XmlElement(name = "param1")
String param1;

public Foo(String val){param1 = val;}
}

以下是有关如何将 Jersey 客户端用于各种 REST 请求的更多示例:
https://github.com/tavibolog/TodaySoftMag/blob/master/src/test/java/com/todaysoftmag/examples/rest/BookServiceTest.java

关于json - Grails 将请求作为 JSON 发送并在 Controller 中解析它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13270279/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com