Http 响应包含 MIME 流.. 它具有由边界字符串分隔的二进制图像.. 需要获取这些图像并使用 c# 保存
Posted
技术标签:
【中文标题】Http 响应包含 MIME 流.. 它具有由边界字符串分隔的二进制图像.. 需要获取这些图像并使用 c# 保存【英文标题】:Http Response Contains MIME stream.. which has binary Images seperated by Boundary String.. need to get those Images and save using c# 【发布时间】:2016-05-04 18:30:00 【问题描述】:当我向服务器发出 HTTP 请求时,它使用 MIME 响应流进行响应,其中包含两个或多个图像作为二进制数据,由边界字符串分隔 现在我只需要提取这些图像并将它们单独保存到数据库中
流看起来像这样...
标题有
RETS-Version: RETS/1.0
MIME-Version: 1.0
Content-type: multipart/parallel;
boundary="simple boundary"
Http ResoinseStream 有
--简单边界
Content-Type: image/jpeg
Content-ID: 123456
Object-ID: 1
<binary data>(Image1)
--简单边界
Content-Type: image/jpeg
Content-ID: 123457
Object-ID: 1
<binary data>(Image2)
--简单边界--
我需要提取 image1 和 image2 并将它们作为二进制图像保存在数据库中。
【问题讨论】:
【参考方案1】:如果你使用我的 MimeKit 库,你可以很容易地做到这一点:
static MimeEntity ParseHttpWebResponse (HttpWebResponse response)
var contentType = ContentType.Parse (response.ContentType);
return MimeEntity.Parse (contentType, response.GetResponseStream ());
static void SaveAllImages (HttpWebResponse response)
var entity = ParseHttpWebResponse (response);
var multipart = entity as Multipart;
if (multipart != null)
foreach (var image in multipart.OfType<MimePart> ())
using (var memory = new MemoryStream ())
image.ContentObject.DecodeTo (memory);
var blob = memory.ToArray ();
// save it to your database
【讨论】:
谢谢,我会努力让你知道以上是关于Http 响应包含 MIME 流.. 它具有由边界字符串分隔的二进制图像.. 需要获取这些图像并使用 c# 保存的主要内容,如果未能解决你的问题,请参考以下文章