我正在使用一个名为JasperServer的java编写的web服务。我想从web服务获得一个文件,并将其保存在本地。
web服务提供一个get()方法;它请求一个XML字符串,并返回一个字符串,目标文件作为MIME附件返回:
public string get(string requestXmlString)现在,我尝试使用字符串来接受响应:
String res2 = webServiceClient.get(xmlInput);它给了我一个例外:
客户端找到的响应内容类型为'multipart/related;type=“”text/xml“;start="<7817FB68F69B037F5A5DEDE2AC105A65>";start=但预期的'text/xml‘。
错误消息导致请求失败:
------=_Part_2_1089980294.1393857885100
Content-Type: text/xml; charset=UTF-8
Content-Transfer-Encoding: binary
Content-Id: <7817FB68F69B037F5A5DEDE2AC105A65>因此,我的问题是如何在C# .Net中使用带有MIME附件的字符串响应。怎么把它保存到我的本地人那里?
发布于 2014-03-05 12:35:36
您需要一个组件来解析RFC 822/2045和扩展描述的MIME格式。.NET框架不包括内置类。
我对Mime4Net组件有很好的经验(它基于Apache mime4j的端口):
Stream mimeMsgStream;
var m = new MimeMessage(mimeMsgStream);MimeMessage为MIME结构提供DOM,可以轻松提取附件内容。还要注意,Mime4Net只对非商业用途是免费的。
发布于 2015-11-12 10:31:53
我在使用Java时也遇到了同样的问题。在WCF3配置中,我只将messageEncoding属性添加到绑定定义中,并将其设置为"Mtom“。就像这样:
...
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="e3" messageEncoding="Mtom">https://stackoverflow.com/questions/22152804
复制相似问题