c# - 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);
推荐阅读
- python - TensorFlow 在一个 GPU 上同时训练多个较小的批次
- ios - AVCapturePhotoOutput didFinishProcessingPhoto 没有被调用
- android - 更改 TextField 中光标的大小(Jetpack Compose)
- azure - 如何在通过 ARM 创建 Key Vault 时分配“Key Vault Secrets User”RBAC 角色
- python - Flask 博客文章正在删除最后一篇博客文章,而不是想要的
- c# - 如何在 C# TCP 中的客户端-服务器之间同时读写两种方式
- flutter - TextFormField 不再关注重绘
- github - gitlab管道在代码推送和合并请求时自动添加
- validation - API 测试:验证动态 Rest Response 的方法(底层数据库中的 JSON 属性/值经常变化)
- java - 如何在android的firebase firestore中删除文档内的列表项?