- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在调整最近在 .NET Standard 中启动的项目以使用 Azure Functions。我有一个 HTTP 触发器,我直接从表单发布到该触发器。只有 2 个字段:数字输入和文件上传。
在不引用任何其他库的情况下使用该函数时,我无法在 HttpRequestMessage 上使用 ReadAsFormDataAsync。我收到:
System.Net.Http.UnsupportedMediaTypeException: No MediaTypeFormatter is
available to read an object of type 'FormDataCollection' from content with
media type 'multipart/form-data'.
我可以使用 ReadAsMultipartAsync 并设法获取发布值。
当我引用 .NET Standard 库时,我什至无法输入该函数,因为它被完全拒绝:
System.Net.Http.UnsupportedMediaTypeException: No MediaTypeFormatter is
available to read an object of type 'HttpRequestMessage' from content with
media type 'multipart/form-data'
我尝试创建一个全新的 .NET 标准框架框架并引用它以及同样的东西。
作为附加引用,我发现 this post ,但我似乎没有遇到同样的问题。
本来打算提出问题,但决定先在这里尝试。有什么想法吗?
编辑:当 enctype 为 application/x-www-form-urlencoded 时也会发生这种情况。
最佳答案
据我所知,“ReadAsFormDataAsync”方法仅接受“application/x-www-form-urlencoded”类型的内容。不支持获取'multipart/form-data'类型的内容。
因此,如果您想发送比赛的多个部分,则需要使用“ReadAsMultipartAsync”方法。
更多关于如何在azure函数中使用“ReadAsMultipartAsync”方法的详细信息,您可以引用以下代码:
using System.Net;
using System.Net.Http;
using System.IO;
using System.Collections.Specialized;
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
log.Info("C# HTTP trigger function processed a request.");
string result = "- -";
if (req.Content.IsMimeMultipartContent())
{
var provider = new MultipartMemoryStreamProvider();
req.Content.ReadAsMultipartAsync(provider).Wait();
foreach (HttpContent ctnt in provider.Contents)
{
//now read individual part into STREAM
var stream = ctnt.ReadAsStreamAsync();
return req.CreateResponse(HttpStatusCode.OK, "Stream Length " + stream.Result.Length);
using (var ms = new MemoryStream())
{
//do something with the stream
}
}
}
if (req.Content.IsFormData())
{
NameValueCollection col = req.Content.ReadAsFormDataAsync().Result;
return req.CreateResponse(HttpStatusCode.OK, $" {col[0]}");
}
// dynamic data = await req.Content.ReadAsFormDataAsync();
// Fetching the name from the path parameter in the request URL
return req.CreateResponse(HttpStatusCode.OK, "Doesn't get anything " + result);
}
结果:
关于c# - 没有 MediaTypeFormatter 可用于从媒体类型为 'HttpRequestMessage' 的内容中读取类型为 'multipart/form-data' 的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45949830/
我已经编写了一个 ServiceHelper 类,它将协助 POST 到 C# Web API Controller public class ServiceHelper : IServiceHelp
我正在尝试根据请求的 URL 输出不同格式的类型。在 Preview5 之前,我执行了以下操作以在 MediaTypeFormatters OnWriteToStream-Method 中获取 URI
我有一个 web api,其中全局配置被配置为使用:XmlMediaTypeFormatter 我的问题是我不会用一个新的 Controller 扩展这个 web api,而是使用 JsonMedia
我有 extended the JsonMediaTypeFormatter 为了在 JSON 中为 decorated with a custom attribute 的类型生成“根”对象. 我将如
我在服务器上部署了一个 webapi 项目 mvc4 rc 和一个 mvc4 rc web 应用程序。 在本地一切正常,但在服务器上出现错误 2012-06-09 03:18:18,659 [23]
我有一个带有自定义 MediaTypeFormatter 的自托管 WebApi 应用程序 根据“名称”参数(或 URL 的一部分),应用程序应将请求正文格式化为不同的类型。 这是 Action //
AJAX 调用 $.ajax({ url: '/api/Inventory', cache: false, type: 'POST', data: json,
考虑这段代码: public Gender Get() { return Gender.Female; } public enum Gender { Male, Female }
我在 TestFormatter.cs extending MediaTypeFormatter 中有一个名为 TestFormatter 的自定义媒体格式化程序。现在我想添加这个格式化程序。一种选择
我有一个 MVC 5 Web Api 和一个连接到它的桌面应用程序。 我有一个 Controller 并从应用程序连接到它没有任何问题,但是当我将 [Authorize] 属性放入 Controlle
我有一个非常简单的 ApiController,它在 Win7 上运行良好,但在 Windows 2003 Server 上我遇到错误。 获取请求(来自浏览器或 $.getJson): https:/
我正在实现我自己的 MediaTypeFormatter我对方法有一些疑问 WriteToStreamAsync对于我正在做的自定义 XML 序列化程序: public override Task W
我创建了一个 WebAPI 项目来帮助捕获 TinCan 学习类(class)中的语句,但我在检索任何请求负载详细信息时遇到了极大的困难。在此有效负载中,我传递了我试图捕获的整个语句,但在尝试使用以下
我正在尝试自定义实现 MediaTypeFormatter , 但方法 bool CanReadType(Type type)总是以 IKeyValueModel 类型调用,而不是我的类型 MyPro
考虑使用 ASP.NET Web API 编写的 Web 服务来接受任意数量的文件作为“多部分/混合”请求。辅助方法如下所示(假设 _client 是 System.Net.Http.HttpClie
我正在使用 ASP.NET Web API。我的 Controller 中有一个 Action ,如果没有参数,它可以正常工作。如果有一个参数,例如: public string UploadFile
我正在为 HTML 编写媒体类型格式化程序,以根据用户的 html 请求自动生成 Razor View 。我这样做是为了在 SelfHosted 服务中使用。我需要检测请求了哪些 Controller
当我尝试使用 ASP.NET WEBAPI 将我的表单数据发布到 JSON 文件时,我收到“没有 MediaTypeFormatter 可用于从媒体类型为‘text/plain’的内容中读取类型为‘P
我有一个 ASP.Net WebAPI 项目将返回 JSON,但特别是 HAL+JSON。我知道我可以编写自定义 MediaTypeFormatter 来执行此操作,但我计划返回相同的 HAL 格式响
情况是这样的: 它们是 Servoy 中的外部 Web 服务,我想在 ASP.NET MVC 应用程序中使用此服务。 通过这段代码,我尝试从服务中获取数据: HttpResponseMessage r
我是一名优秀的程序员,十分优秀!