如何將複雜對象(可能有大量數據)發送到Web API獲取方法? 我知道我可以使用'FromUri'選項,但由於數據太大,我無法使用該選項。我想要用戶'FromBody'選項。但我可以發佈數據到Get Method ?????以複雜對象爲參數的Web API獲取方法
提前
如何將複雜對象(可能有大量數據)發送到Web API獲取方法? 我知道我可以使用'FromUri'選項,但由於數據太大,我無法使用該選項。我想要用戶'FromBody'選項。但我可以發佈數據到Get Method ?????以複雜對象爲參數的Web API獲取方法
提前
如何發送一個複雜的對象(其中可能有巨大的數據)到Web API請指引我在這裏...感謝GET方法?
你不行。 GET方法沒有請求體。你必須發送有限制的查詢字符串中的所有內容。
您應該使用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>
和
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="10485760" />
</requestFiltering>
</security>
</system.webServer>
So In這種情況...「WCF」與「WebAPI」相比是更好的選擇。因爲在GET中發佈巨大的數據可能不是一個好主意? –
您無法使用HTTP GET發送數據,但您被限制爲通常少於2000個字符的URI。如果您需要將大量數據發佈到服務端點,則應使用HTTP POST並將數據放入主體中。 –
我不會比較WCF或Web API。每個都有其適當的應用。 –
周使用的OData也許它沒有太大的對象
https://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api
或者使用FromUri喜歡精緻的下面
公共方法名獲取([FromUri]型號模型,詮釋頁,INT的pageSize)
所以在這種情況...「WCF」與「WebAPI」相比是更好的選擇。因爲在GET中發佈巨大的數據可能不是一個好主意? –
@KokiralaSudheer,你不能在GET中發佈數據:-)你自相矛盾。 WCF根本無法幫到你。我建議你閱讀HTTP協議規範,熟悉GET和POST動詞,最重要的是要區分它們的差異。當您使用GET謂詞時,請求沒有任何主體。您只能使用查詢字符串參數將值發送到服務器。如果你需要發送大量數據到服務器,你應該使用POST。 –
@KokiralaSudheer想一想吧: 'GET:提供了一個URL,會得到一些數據.' 'POST:提供了一個URL和一些數據,將發送一些數據並獲得一些數據作爲回報.' –