C# 读取多部分流



我正在HTTPHandler中读取多部分表单数据。

我的代码:

var content = new StreamContent(context.Request.InputStream);
//content.Headers.Add("Content-Type", context.Request.ContentType);
//content.Headers.TryAddWithoutValidation("Content-Type", context.Request.ContentType);
//content.Headers.TryAddWithoutValidation("Content-Type", "multipart/form-data");
//content.Headers.Add("Content-Type", "multipart/form-data");
//content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(context.Request.ContentType);
// content.Headers.Remove("Content-Type");
//content.Headers.Add("Content-Type", context.Request.ContentType);~
content.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse(context.Request.ContentType);
if (!content.IsMimeMultipartContent())
{
return HttpStatusCode.BadRequest;
}
var multipart =await content.ReadAsMultipartAsync();

我总是得到:

The format of value 'Content-Type: multipart/form-data; boundary=9fc46...................... is invalid

如果我不尝试放置内容类型,则会出现另一个错误。

注意:注释的行是我尝试过但没有结果的其他替代方案

工作解决方案:

var content = (HttpContent)new StreamContent(context.Request.InputStream);
content.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse(context.Request.ContentType);
var multipart = new MultipartMemoryStreamProvider();
await content.ReadAsMultipartAsync(multipart);

尝试设置具有以下边界的 MultPartFormDataContent 对象并发布此对象

var content = new MultipartFormDataContent("---------------" + Guid);

我相信破折号与读取边界的方式有关。

最新更新