我正在尝试使用自定义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
答案 0 :(得分:1)
最终的MIME部分存在许多问题。
Content-Transfer-Encoding:
标头。身体明显处于基础64;如果没有正确的识别标题,它将被视为文本。这会导致对附加数据的解析不正确,但不会引入语法错误。Content-Type:
标题似乎被截断。允许省略charset=
参数,但如果您不打算包含它,为什么该字段以分号结尾?这不是一个重要的遗漏,但暗示可能存在其他问题。 (编码数据当前是纯ASCII,因此默认字符集没问题。)