首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C#中使用MIME响应附件?

如何在C#中使用MIME响应附件?
EN

Stack Overflow用户
提问于 2014-03-03 17:06:23
回答 2查看 2.1K关注 0票数 0

我正在使用一个名为JasperServer的java编写的web服务。我想从web服务获得一个文件,并将其保存在本地。

web服务提供一个get()方法;它请求一个XML字符串,并返回一个字符串,目标文件作为MIME附件返回:

代码语言:javascript
复制
public string get(string requestXmlString)

现在,我尝试使用字符串来接受响应:

代码语言:javascript
复制
String res2 = webServiceClient.get(xmlInput);

它给了我一个例外:

客户端找到的响应内容类型为'multipart/related;type=“”text/xml“;start="<7817FB68F69B037F5A5DEDE2AC105A65>";start=但预期的'text/xml‘。

错误消息导致请求失败:

代码语言:javascript
复制
------=_Part_2_1089980294.1393857885100
Content-Type: text/xml; charset=UTF-8
Content-Transfer-Encoding: binary
Content-Id: <7817FB68F69B037F5A5DEDE2AC105A65>

因此,我的问题是如何在C# .Net中使用带有MIME附件的字符串响应。怎么把它保存到我的本地人那里?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-05 12:35:36

您需要一个组件来解析RFC 822/2045和扩展描述的MIME格式。.NET框架不包括内置类。

我对Mime4Net组件有很好的经验(它基于Apache mime4j的端口):

代码语言:javascript
复制
Stream mimeMsgStream;
var m = new MimeMessage(mimeMsgStream);

MimeMessage为MIME结构提供DOM,可以轻松提取附件内容。还要注意,Mime4Net只对非商业用途是免费的。

票数 0
EN

Stack Overflow用户

发布于 2015-11-12 10:31:53

我在使用Java时也遇到了同样的问题。在WCF3配置中,我只将messageEncoding属性添加到绑定定义中,并将其设置为"Mtom“。就像这样:

代码语言:javascript
复制
...
<system.serviceModel>
        <bindings>
            <wsHttpBinding>
                <binding name="e3" messageEncoding="Mtom">
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22152804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档