如何使用泽西岛获得完整的 REST 请求正文?
如何使用 Jersey 获取请求的完整 HTTP REST 请求正文?POST
在我们的例子中,数据将是XML。大小从 1K 到 1MB 不等。
文档似乎表明您应该使用,但我看不到任何示例。MessageBodyReader
如何使用 Jersey 获取请求的完整 HTTP REST 请求正文?POST
在我们的例子中,数据将是XML。大小从 1K 到 1MB 不等。
文档似乎表明您应该使用,但我看不到任何示例。MessageBodyReader
事实证明,你根本不需要做太多事情。
见下文 - 该参数将包含完整的HTTP正文(在我们的例子中是XML)。x
@POST
public Response go(String x) throws IOException {
...
}
您可以使用@Consumes注释来获取完整的正文:
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
@Path("doc")
public class BodyResource
{
@POST
@Consumes(MediaType.APPLICATION_XML)
public void post(Document doc) throws TransformerConfigurationException, TransformerException
{
Transformer tf = TransformerFactory.newInstance().newTransformer();
tf.transform(new DOMSource(doc), new StreamResult(System.out));
}
}
注意:不要忘记请求中的“内容类型:应用程序/xml”标头。