gpt4 book ai didi

java - 如何在 HTTP 请求中发送对象

转载 作者:行者123 更新时间:2023-12-01 18:57:17 25 4
gpt4 key购买 nike

我正在创建一个Web服务,它将正确处理传入的请求(我知道,这是一个描述)我找到了一些示例代码,它呈现SOAP WS,看起来像:

    @SoapAction("some fine url")
@ResponsePayload
public CertResponse getCert(@RequestPayload Cert param)
{...}

它从请求中获取Cert对象并正确管理它。我想用 REST 方法来完成它,我将这个类更改为如下所示:

    @RequestMapping(value="getCert", method = RequestMethod.POST)
@ResponseBody
public CertResponse getCert(@RequestBody Cert param)
{...}

但是我不知道如何或者是否可以编写一个可以通过 HTTP Post 发送对象的客户端。

谁能给我一个提示,我如何发送对象Cert?或者,如果我必须继续使用 @SoapAction 我应该做什么才能使其正常工作?我想删除 @Controller 还不够。

最佳答案

在 SOAP 方法中,有一种定义明确的方法将每个类对象转换为 SOAP 格式的 XML。因此,没有任何努力。

如果您将使用 RESTful 方法,则必须描述如何将 Cert 或 CertResponse 对象写入响应/请求或从响应/请求中读取。

基本上你有三个选择:

  1. 使用 JSON 或 XML 或纯字符串。转换您的 Web 服务描述符,以便请求和响应是其中之一(JSON、XML、字符串)。然后,您的 getCert 方法应将请求转换为 Cert 对象,将响应准备为 CertResponse 对象,并将其转换为适当的响应类型。

  2. 保持 getCert 方法不变。但是您需要指定“如何从请求中读取 Cert 对象”和“如何将 CertResponse 对象写入响应” 您需要定义扩展接口(interface) MessageBodyReader 和 MessageBodyWriter 的类。在这些类中,应该实现类似的转换逻辑,将对象与 JSON、XML 或字符串相互转换。

    在这两个选项中的任何一个中,您都需要实现两件事:将 JSON/XML/String 转换为 Cert 的方法,将 CertResponse 对象转换为 JSON/XML/String 的方法。

    您可以进行基于文本的实现,它通过文本处理来解析/构造请求/响应,并且仅使用 String 类。或者您可以使用一些库,例如带有 JSONObject 类的 JSON 库,或者 Java 包附带的基于 Java SAX 或 DOM 的 XML 库。

  3. 查看 Spring 等应用程序框架。它们可能提供自动将对象转换为 JSON 或 XML 的方法,从而减少必要的编程工作。

关于java - 如何在 HTTP 请求中发送对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13519174/

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