我有一个SOAP响应传回它的主体元素为...流......我被告知这意味着流正在被传递。我将如何去阅读这个流?我怎样才能找出它是什么流?接收流的程序是一个WCF服务。流作为SOAP响应传递
1
A
回答
0
流通常只能读取一次,所以如果读取流可能会被使用,您需要重新创建它。你可以做的一个可能的地方是在一个自定义信息编码器,它包装原始绑定编码器。
有两个WriteMessage
您需要实现的方法。在缓冲的情况下,只需将呼叫委派给封装的编码器,并且您将获得消息内容。在流式传输的情况下,您会将传递一个内存流的消息写入包装的编码器,检查内容,然后将流内容写入作为参数传递的流中。
public override ArraySegment<byte> WriteMessage(Message message, int maxMessageSize, BufferManager bufferManager, int messageOffset)
{
ArraySegment<byte> result = this.wrappedEncoder.WriteMessage(message, maxMessageSize, bufferManager, messageOffset);
// message contents on the array segment.
return result;
}
public override void WriteMessage(Message message, Stream stream)
{
MemoryStream ms = new MemoryStream();
this.wrappedEncoder.WriteMessage(message, ms);
// message contents in the memory stream
ms.Position = 0;
ms.CopyTo(stream);
}
+0
谢谢。我将转换模式从Streamed切换到Buffered,而不是在我的Web.config中,现在我可以在我的日志中看到正文 – symbiont 2016-09-30 12:50:12
相关问题
- 1. SOAP:作为NULL传递的整数
- 2. 在PHP中流传输大型SOAP响应
- 3. 使用node.js传递Http响应到网页的流传输
- 4. SOAP UI响应
- 5. 在SOAP响应
- 6. 传递JSON作为流WCF方法
- 7. 如何传递原始JSON作为Restful服务的响应?
- 8. 从HTTPContext作为响应在运行时传递一个值
- 9. 在liferay中传递对象作为对ajax请求的响应
- 10. 在WCF中传递异常作为响应的一部分
- 11. 将ajax响应作为参数传递给自定义函数
- 12. 格式SOAP响应
- 13. SOAP响应到XML
- 14. 从Java SOAP响应
- 15. 截取SOAP响应
- 16. SOAP响应模式
- 17. SOAP响应大小
- 18. 缓存SOAP响应
- 19. SOAP响应处理
- 20. PHP - 从SOAP响应
- 21. Node.js - 将可读流传递给http响应
- 22. PHP SOAP响应为空,但__last_response不是
- 23. 将SOAP响应转换为JSONArray
- 24. 将XML SOAP响应转换为CSV
- 25. 如何在xml中传递值作为SOAP请求
- 26. XmlDocument读取作为SOAP消息正文传递的XML文件
- 27. 内置SOAP扩展PHP5传递PARAMS作为关联数组
- 28. 将XML作为字符串传递给LoadRunner中的SOAP请求
- 29. 在SOAP API中将datetime作为数组传递PHP
- 30. 如何将数组作为参数传递给Ruby中的SOAP
使用StreamReader? – talnicolas 2012-02-29 20:49:44
@talnicolas在我的经验中,StreamReader对于阅读任意流并不是非常有用... – 2012-02-29 20:54:53
@MarcGravell噢,好吧,这只是一个提示,我并不真正了解任何C#。 – talnicolas 2012-02-29 20:56:49