Asp.net mvc 4 以复杂对象为参数的webapi获取方法
如何将复杂对象(可能包含大量数据)发送到Web API Get方法? 我知道我可以使用“FromUri”选项,但由于数据太大,我不能使用该选项。我想使用“FromBody”选项。但是我可以将数据发布到Get方法吗 请引导我到这里…提前谢谢 如何将复杂对象(可能包含大量数据)发送到Web API Get方法 你不能。GET方法没有请求主体。您必须发送查询字符串中有限制的所有内容Asp.net mvc 4 以复杂对象为参数的webapi获取方法,asp.net-mvc-4,asp.net-web-api,Asp.net Mvc 4,Asp.net Web Api,如何将复杂对象(可能包含大量数据)发送到Web API Get方法? 我知道我可以使用“FromUri”选项,但由于数据太大,我不能使用该选项。我想使用“FromBody”选项。但是我可以将数据发布到Get方法吗 请引导我到这里…提前谢谢 如何将复杂对象(可能包含大量数据)发送到Web API Get方法 你不能。GET方法没有请求主体。您必须发送查询字符串中有限制的所有内容 您应该改用POST。您需要创建一个类似于以下内容的方法: [HttpPost] public HttpResponseM
您应该改用POST。您需要创建一个类似于以下内容的方法:
[HttpPost]
public HttpResponseMessage MyMethod([FromBody] MyComplexObject body)
{
try
{
// Do stuff with 'body'
myService.Process(body);
}
catch (MyCustomException)
{
return new HttpResponseMessage(HttpStatusCode.BadRequest) { Content = new StringContent("FAILED") };
}
return new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent("OK") };
}
如果发布数据大于4MB,则需要调整web.config以将IIS配置为接受更多,以下示例将maxRequestLength和maxAllowedContentLength设置为10MB:
<system.web>
<httpRuntime maxRequestLength="10240" />
</system.web>
及
使用OData可能对不太大的对象很好 或者像下面这样使用FromUri
public-MethodName-Get([FromUri]Model-Model,int-page,int-pageSize)。因为在GET中发布大量数据可能不是一个好主意??您不能使用HTTP GET发布数据,您必须使用通常少于2000个字符的URI。如果您需要向服务端点发布大量数据,您应该使用HTTPPOST并将数据放在正文中。我不会像那样比较WCF或WebAPI。每一个都有其适当的应用程序。因此,在这种情况下,与“WebAPI”相比,“WCF”是更好的选择。因为在GET中发布大量数据可能不是一个好主意???@KokiralaSudheer,您不能在GET中发布数据:-)您自相矛盾。WCF根本帮不了你。我建议您阅读HTTP协议规范,熟悉GET和POST动词,最重要的是了解它们的区别。使用GET动词时,请求没有任何正文。只能使用查询字符串参数向服务器发送值。如果你需要向服务器发送大量数据,你应该使用POST。@KokiralaSudheer这样想:
GET:提供一个URL,将获得一些数据。
POST:提供一个URL和一些数据,将发送一些数据并获得一些数据作为回报。
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="10485760" />
</requestFiltering>
</security>
</system.webServer>