首页 > 解决方案 > 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

如果我不尝试输入内容类型,我会收到另一个错误。

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

标签: c#asp.net

解决方案


工作解决方案:

        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);

推荐阅读