肥皂网络服务中多部分请求的内容类型
Posted
技术标签:
【中文标题】肥皂网络服务中多部分请求的内容类型【英文标题】:Content type for multi-part request in soap web services 【发布时间】:2014-05-11 16:50:11 【问题描述】:我正在编写一个 Java 客户端来调用 SOAP Web 服务。它接受一个文件作为附件,所以在 java 中,我需要将内容类型声明为 multipart。我正在使用apache http
库来编写 Java 客户端。
我在Java中指定它如下
httppost.setHeader("Content-Type", "multipart/related");
但我收到以下错误
Couldn't create SOAP message due to exception: javax.xml.ws.WebServiceException: MIME boundary parameter not foundmultipart/related
请告诉我如何解决此错误。在 Java 中指定的内容类型应该是什么。
当我将其指定为
httppost.setHeader( "Content-Type", "text/xml; charset=utf-8" );
再次,我得到了以下异常
Caused by: com.sun.xml.ws.streaming.XMLStreamReaderException: XML reader error: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '-' (code 45) in prolog; expected '<'
我应该继续哪个以及如何解决相应的异常?
【问题讨论】:
【参考方案1】:我假设您正在尝试使用 MTOM+XOP?
第一个错误很明显:你没有边界。多部分不仅仅是一种内容类型,它要求您使用必须在标题中声明的边界来标记不同的部分,并要求换行符等位于正确的位置。
其次,如果您要这样做,您不能只将文件发送到 SOAP 端点,您需要在第一部分有一个肥皂体,它在第二部分引用该文件。
【讨论】:
我正在使用 apache http 库。你能告诉我怎么做吗 要进行有效的 MTOM+XOP 交互,除了 multipart 之外,您还需要了解很多,请先阅读。 我没有使用 MTOM/XOP。已经写了一个服务。我只需要使用 Java 代码和 apache http 库来调用它。我目前卡在文件附件部分。可能是我错误地设置了内容类型或与之相关的任何内容。以上是关于肥皂网络服务中多部分请求的内容类型的主要内容,如果未能解决你的问题,请参考以下文章
在调用 Web 服务时,是不是有一种简单的方法来获取请求的肥皂消息和响应的肥皂消息?
如何使用 PHP-curl 发送“多部分/相关”内容类型的请求?
这个异常在 oracle jaxd-ws 肥皂网络服务中意味着啥