簡體   English   中英

如何在Web API方法中讀取傳入的Http Post請求的請求正文?

[英]How to read Request body of an incoming Http Post request in a web api method?

我正在嘗試以API方法讀取傳入的http發布請求的內容。

[HttpPost]
[Route("api/Process")]
public async Task Process())
{
    //string result = await Request.Content.ReadAsStringAsync();
    NameValueCollection result = await Request.Content.ReadAsFormDataAsync();
}

當我看着提琴手時,請求正文如下。 它在那里顯示為“名稱/值”對。

Request body:

name: test
total: 200
email: test@test.com
identifier: 493493

如何在API中閱讀它們?

ReadAsStringAsync

name=test&total=200&email=test@test.com&identifier=493493

ReadAsFormDataAsync僅提供鍵集合,包括名稱,總數,電子郵件,標識符。 但是沒有價值集合。

感謝您的任何建議。

您為什么不只添加一個模型類來收集發布的數據。 您無需手動獲取已發布的數據以進行響應。 MVC應該執行它。

public class ProcessInput
{
    public string Name { get; set; }

    public string Total { get; set; }

    public string Email { get; set; }

    public string Identifier { get; set; }
}

API方法;

    [HttpPost]
    [Route("api/Process")]
    public async Task Process(ProcessInput input)
    {
        //var name = input.Name;
    }

使用FormCollection:

[HttpPost]
[Route("api/Process")]
public async Task Process(FormCollection form)
{
    if (form.AllKeys.Contains("name")) lcName = form["name"].ToString() ?? "";
    ... etc ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM