第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

asp.net core http delete `FromBody` 如果沒有內(nèi)容類型頭,則忽略

asp.net core http delete `FromBody` 如果沒有內(nèi)容類型頭,則忽略

C#
富國滬深 2021-10-09 10:13:19
我在 httpDELETE請求中使用正文。我知道目前在刪除中有一個(gè)正文是非標(biāo)準(zhǔn)的(但允許)。使用HttpClient不允許刪除請求的正文時(shí)會(huì)出現(xiàn)問題。我知道我可以只使用SendAsync,但我寧愿讓我的 API 更靈活。我希望這個(gè)機(jī)構(gòu)是可選的。從某種意義上說,如果 asp.net core 無法確定內(nèi)容類型,則忽略它。目前,asp.net 核心返回 415,即使沒有發(fā)送正文(通過HttpClient- 所以內(nèi)容長度應(yīng)該為 0)。可以FromBody這樣擴(kuò)展嗎?或者我需要在管道中使用一些自定義邏輯?
查看完整描述

3 回答

?
侃侃爾雅

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊

您可以創(chuàng)建在檢查內(nèi)容類型的模型綁定之前執(zhí)行的 ResourceFilter:


public class AddMissingContentType : Attribute, IResourceFilter

{

    public void OnResourceExecuting(ResourceExecutingContext context)

    {

        context.HttpContext.Request.Headers["Content-Type"] = "application/json";

    }


    public void OnResourceExecuted(ResourceExecutedContext context)

    {

    }

}

并將其添加到您的方法中:


[AddMissingContentType]

[HttpDelete]

public async Task<IActionResult> Delete([FromBody]RequestData request)

{

}


查看完整回答
反對 回復(fù) 2021-10-09
?
回首憶惘然

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊

如果您將 ~app 用作代理、負(fù)載平衡器或其他您無法控制的東西背后的 API,也許可以將其轉(zhuǎn)換為 POST...

示例:一些負(fù)載均衡器可以將主體的 DELETE 方法視為格式錯(cuò)誤。但是,如果您對自己未來的環(huán)境有把握,為什么不...

編輯:答案是:即使有可能,也許最好遵循有時(shí)適用的規(guī)則,有時(shí)不要再有任何意外。(--無法評論我是新出生的用戶)。


查看完整回答
反對 回復(fù) 2021-10-09
?
小怪獸愛吃肉

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊

一種解決方案是在控制器方法中手動(dòng)獲取主體。您可以檢查內(nèi)容類型是否存在,或者僅使用默認(rèn)讀取器(例如 json),然后以這種方式將其轉(zhuǎn)換為您的模型。那么你不需要修改任何請求頭


[HttpDelete]

public async Task Delete()

{

    using (StreamReader reader = new StreamReader(request.Body, encoding))

    {

        var bodyContent = await reader.ReadToEndAsync();

        if(!String.IsNullOrEmpty(bodyContent))

        {

            //mapp the bodyContent to your model

        }

    }

    //perform the logic which should allways be done

}

注意:重要的是在方法簽名中省略 FromBody 參數(shù),否則當(dāng)內(nèi)容類型或正文丟失時(shí)綁定將失敗


查看完整回答
反對 回復(fù) 2021-10-09
  • 3 回答
  • 0 關(guān)注
  • 460 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)