在PO上发送Ariba网络的附件

时间:2014-08-06 20:11:52

标签: java mime

我正在尝试使用自定义Java应用程序(使用Apache commons)将附件发送到Ariba网络,如下面的post / cXML用户指南所示。

Problem Posting MIME encoded attachment to Ariba Supplier Network

获取" EOF跳过标题"来自Ariba的错误回复

根据我的研究,如果找不到结束边界,则会抛出错误,但我的消息有结束边界。

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

感谢您的帮助。

以下是我发布到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

1 个答案:

答案 0 :(得分:1)

最终的MIME部分存在许多问题。

  • 部件的标题与其正文之间没有空行。这是一个致命错误,会阻止对结构进行正确解析。
  • 没有Content-Transfer-Encoding:标头。身体明显处于基础64;如果没有正确的识别标题,它将被视为文本。这会导致对附加数据的解析不正确,但不会引入语法错误。
  • Content-Type:标题似乎被截断。允许省略charset=参数,但如果您不打算包含它,为什么该字段以分号结尾?这不是一个重要的遗漏,但暗示可能存在其他问题。 (编码数据当前是纯ASCII,因此默认字符集没问题。)