【问题标题】:Sending Attachments to Ariba Network on POs在 PO 上向 Ariba Network 发送附件
【发布时间】:2014-09-29 22:01:02
【问题描述】:

我正在尝试按照以下帖子/cXML 用户指南中的建议,使用自定义 java 应用程序(使用 Apache commons)将附件发送到 Ariba 网络。

Problem Posting MIME encoded attachment to Ariba Supplier Network

从 Ariba 获取“EOF 跳过标头”错误响应

根据我的研究,当找不到结束边界时会抛出上述错误,但我的消息有结束边界。

如果有人遇到类似问题并能够解决,请告诉我。

感谢您的帮助。

这是我发布到 Ariba 的消息格式。

以下是 http 标头

POST / HTTP/1.1
Content-Type: multipart/related;boundary="1403166176143"; type="text/xml"; start="<987654321@xxx.com>"
User-Agent: Jakarta Commons-HttpClient/3.0.1
Content-Length: 4356
Host: Target Server

&这是邮件正文

--1403166176143
Content-Type: text/xml; charset=UTF-8
Content-Disposition: attachment; filename=PO.xml
Content-ID: <987654321@xxx.com>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.021/cXML.dtd">

All the PO related cXML

 <Comments>Tax Rates:<Attachment><URL>cid:123456789@xxx.com</URL></Attachment></Comments>
      </ItemOut>
    </OrderRequest>
  </Request>
</cXML>


--1403166176143
Content-type: text/plain;
Content-ID: <123456789@xxx.com>
Content-Disposition: attachment; filename=FirstAttach.txt
Content-length: 44
VGhpcyBpcyB0aGUgZmlyc3QgUE8gYXR0YWNobWVudC4=
--1403166176143--

使用 Apache commons PostMethod

【问题讨论】:

  • 请发布代码,以便我们查看您是如何发送消息的。

标签: java mime


【解决方案1】:

最后的 MIME 部分有很多问题。

  • 部件的标题和正文之间没有空行。这是一个致命错误,会导致结构无法正确解析。
  • 没有Content-Transfer-Encoding: 标头。主体显然在 base64 中;在没有适当的标识标题的情况下,它将被视为只是文本。这会导致附加数据的解析不正确,但不会引入语法错误。
  • Content-Type: 标头似乎被截断。可以省略charset= 参数,但是如果您不打算包含它,为什么该字段以分号结尾?这不是一个重要的遗漏,但暗示了一个可能的额外问题。 (编码数据目前是纯ASCII,所以默认字符集就可以了。)

【讨论】:

  • 非常感谢您的及时回复!!!。我按照您的建议对第二部分进行了更正,并且能够成功发布附件。
猜你喜欢
  • 2011-01-15
  • 2019-07-31
  • 2017-12-05
  • 2019-02-20
  • 1970-01-01
  • 1970-01-01
  • 2011-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多