gpt4 book ai didi

java - 访问 RESTful 请求的正文

转载 作者:行者123 更新时间:2023-11-30 05:05:37 25 4
gpt4 key购买 nike

我可以使用以下方法完全读取帖子请求(标题+原始正文) com.sun.net.httpserver.HttpServer 及其 HttpHandler。

但我无法使用 javax.xml.ws.WebServiceProvider 执行相同操作我可以读取 header ,但我需要请求中的原始正文数据,无论是纯文本、xml 还是数据字节。一个InputStreamReader就可以了。

   @ServiceMode(value = javax.xml.ws.Service.Mode.MESSAGE) 
@WebServiceProvider
@BindingType(value = HTTPBinding.HTTP_BINDING)
public class MyRestHandler
implements Provider<Source> {

@Resource
protected WebServiceContext wsContext; // injected


public Source invoke(Source source) {

/* source happens to be null except for text/xml BODY type
* in the incoming request.
* In this case, source is a SAXSource*/

}

}

附录(Peter Knego 观察后)

Java Web Services第 126-138 页,作者介绍了一个 RESTful Web 服务使用 JAX-WS 的示例:

@ServiceMode(value = javax.xml.ws.Service.Mode.MESSAGE) 
@WebServiceProvider
@BindingType(value = HTTPBinding.HTTP_BINDING)
public class RestfulTeams
implements Provider<Source> { ... }

甚至,在第 136-137 页中,它扩展了它以支持 POST 方法,访问请求的正文。显然,它可以与 JAX-WS 库类一起使用,因为它在请求体中使用 xml。现在我明白了您的惊讶,以及为什么 source 始终为 null,但对于 text/xml 主体。实际上,最简单的方法是使用 JAX-RS 库。

最佳答案

使用 JAX-RS实现,Jersey例如。书: RESTful Java

关于java - 访问 RESTful 请求的正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5203596/

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