gpt4 book ai didi

vb.net - 将 MIME 编码的附件发布到 Ariba Supply Network 时出现问题

转载 作者:行者123 更新时间:2023-12-02 11:50:21 25 4
gpt4 key购买 nike

我在尝试使用 VB.NET 和 WebRequest 对象发布一些 cXML 文本和附件时遇到问题。我相信我正在正确格式化我希望发布的数据文本,因为它与 Ariba 提供的示例相匹配。

我不确定的是我是否正确使用 WebRequest 对象来进行发布。我将 Method 设置为“POST”,将 ContentType 设置为“multipart/mixed”。我可以成功发布 cXML(使用“text/xml”的 ContentType),因此我知道一般工作中的发布。

我从 Ariba 收到的消息是:

The document could not be parsed: Missing start boundary [ANCLS-741552]

但是,如以下代码所示,存在一个开始边界。我删除了一些专有数据并将其替换为“...”。在 MIME 文本之后,我添加了我正在使用的相关 VB.NET 代码。

我们非常欢迎并赞赏任何和所有建议!

------=_boundary.20100210154837663.173702
Content-Type: text/xml; charset=UTF-8
Content-ID: Part1.5213.20100210154837663.319349

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

------=_boundary.20100210154837663.173702
Content-Type: application/octet-stream
Content-transfer-encoding: base64
Content-ID: 5213.20100210154837663.319349
Content-Disposition: attachment; filename=attachment_20100210154837663_125705.jpg
Content-Length: 5660

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsUFRAWIB0iIiAd
.
.
.
dC2Nz9dOaQ1ZVIilwIpaWvLEg7aWuauv/9k=
------=_boundary.20100210154837663.173702--


Dim myWriter As StreamWriter = Nothing

Dim strUri As String = "https://service.ariba.com/service/transaction/cxml.asp"

Dim WebReq As WebRequest = System.Net.WebRequest.Create(strUri)

WebReq.Method = "POST"
WebReq.ContentType = "multipart/mixed"

myWriter = New StreamWriter(WebReq.GetRequestStream())
myWriter.Write(xmlText)
myWriter.Close()

Dim WebRsp As HttpWebResponse
WebRsp = CType(WebReq.GetResponse(), HttpWebResponse)

最佳答案

Bill - 我从 Ariba 获得了一些信息,认为它可能对您有用:

  • 整个有效负载的内容类型声明指定边界
  • 每个部分前面都有一个“--”,后跟边界
  • 文档以“--”结尾,后跟边界,最后跟“--”
  • 每个部分的 Content-ID 都用尖括号括起来
  • 附件的 Content-ID 在评论/附件的 URL 元素中引用(不带尖括号)

也许你可以尝试使用短路的边界字符串。另外,请注意“start”参数。这是对我有用的一个:

request.ContentType =  "multipart/related;boundary=outerboundary1;type=""text/xml"";start=""<x.xml>"""

具有上述边界和开始设置的示例 XML 如下所示:

--outerboundary1

Content-Type: text/xml

Content-ID: <x.xml>

<?xml version="1.0"?>

<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.007/InvoiceDetail.dtd">

<cXML payloadID="za1saasxsx" timestamp="2003-04-04" xml:lang="en"><Header><From>

...

<Comments>These also use bluetooth<Attachment><URL>cid:xx@cxml.org</URL></Attachment></Comments>

...

</Request></cXML>

--outerboundary1

Content-type: text/plain; charset=US-ASCII

Content-Disposition: attachment; filename=PremiereCatalog.xxx

Content-Length: 4

Content-ID: <xx@cxml.org>

xxxx

--outerboundary1--

我知道如果没有什么帮助,这可能会非常令人沮丧。所以让我知道您是否需要对我有用的完整代码。

普拉文

关于vb.net - 将 MIME 编码的附件发布到 Ariba Supply Network 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2240474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com