我正在尝试解决任何感谢的帮助。提前致谢
该服务是一个文件传递,它获取一个 PDF,然后使用下面的 BPL 代码创建其余包装器并发送流数据。我没有正确地从入站获取流,“request.Stream”或“request.StreamFC”总是会产生以下错误。
这是消息中发送和返回的内容..
要求:
*
<Stream>
15@%Library.FileCharacterStream
</Stream>
response:
<Stream>
Unable to load xml from message: Data at the root level is invalid. Line 1, position 1.
</Stream>
- 我认为我的问题是我没有通过使用“%GlobalStreamCharacter”来使用正确的类,或者我没有正确处理原始 PDF CDATA 入站
set context.RESTMessage.Stream=##class(%GlobalCharacterStream).%New()
我尝试过使用不同的流类型......文件,二进制......但没有运气
- 下面的一般 BPL
/// BPL 定义 X
Data BPL [ XMLNamespace = "http://www.intersystems.com/bpl" ]
{
<process language='objectscript' request='Ens.StreamContainer' response='Ens.Response'
height='2000' width='2000' >
<context>
.....
.....
....
<code name='Create REST Message' xpos='200' ypos='250' >
<![CDATA[
set context.RESTMessage=##class(EnsLib.HTTP.GenericMessage).%New()
set context.RESTMessage.Stream=##class(%GlobalCharacterStream).%New()
set tSC=context.RESTMessage.Stream.Write(request.StreamFC)
set tSC=context.RESTMessage.HTTPHeaders.SetAt("application/xml","Content-Type")
set tSC=context.RESTMessage.HTTPHeaders.SetAt(context.RESTMessage.Stream.Size,"Content-
Length")
set tSC=context.RESTMessage.HTTPHeaders.SetAt("POST","HttpRequest")
]]>
</code>