<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      .Net WebApi 中的 FromBody FromForm FromQuery FromHeader FromRoute

        在日常后端Api開發中,我們跟前端的溝通中,通常需要協商好入參的數據類型,和參數是通過什么方式存在于請求中的,是表單(form)、請求體(body)、地址欄參數(query)、還是說通過請求頭(header)。

        當協商好后,我們的接口又需要怎么去接收這些數據呢?很多小伙伴可能上手就是直接寫一個實體,作為 api 函數的入參,然后就愉快的編寫代碼了;前端調用時卻報 400 錯誤,可以說是一臉懵;當然,很多情況下這樣寫是不會報錯的,因為我們需要的數據,往往只會存在于一個地方,就是請求體(body),而我們的 .Net Core 又足夠的強大,導致本不嚴謹的操作卻不會發生 bug。

        而當出現這樣的一個需求的時候,小伙伴們思考一下應該怎么做:一個 Post 請求,參數分別放在了 地址欄(url?key=#$!fsefes&token......)、和請求體中( {“name”:"小明",""sex:"男"} );像這個需求我們的后端接口應該怎么寫呢?下面我們嘗試一下不嚴謹的做法。

        首先我們定義一個實體 Info

      public class Info
      {
          public string? Name { get; set; }
      
          public string? Sex { get; set; }
      }

        而又因為 Url 中的參數數量比較多,常規的一個做法,也是定義一個實體類去接收

      public class Parameters
      {
          public string? Key { get; set; }
      
          public string? Token { get; set; }
      
          public string? Time { get; set; }
      }

        然后編寫 Post 接口函數,非常簡單

      [HttpPost]
      public int Post(Parameters parameters, Info info)
      {
          return 200;
      }

        我們直接 F5 把項目跑起來,你會發現,程序報錯了,因為程序分不清誰跟誰了

       

         而錯誤提示非常的清楚,你要使用 FromQuery 特性,現在我們給參數加上這個特性

      [HttpPost]
      public int Post([FromQuery]Parameters parameters, Info info)
      {
          return 200;
      }

        再次啟動后,代碼不報錯了,我們看一下 swagger

        由于我們給 parameters 參數加上了 FromQuery 的特性,所以程序就不懵了

       

        下面給大家說下 FromBody FromForm FromQuery FromHeader FromRoute 的區別

        FromBody:當請求的 content-type 為 application/json 時,可以不加上這個特性,因為當入參類型為實體類時,系統默認從請求體(body)中獲取數據,在這里建議大家加上;

        FromForm:當請求屬于表單提交,也就是 content-type 為 application/x-www-form-urlencoded,則必須給參數加上 FromForm 特性,否者會報 400 錯誤;

        FromQuery:獲取地址爛參數,當接口參數是一個實體類時,建議必須加上該特性;

        FromHeader:獲取請求頭參數;

        FromRoute:獲取路由參數,這個可能有些小伙伴會很疑惑,我貼出個代碼大家就懂了:

      [HttpPost("{id}")]
      public int Post([FromRoute]string id, [FromQuery]Parameters parameters, Info info)
      {
          return 200;
      }

         好了,本文到此結束,感謝大佬們的觀看,謝謝!

      原文鏈接:http://www.rzrgm.cn/ysmc/p/16758995.html

      posted @ 2022-10-07 02:09  一事冇誠  閱讀(6771)  評論(9)    收藏  舉報
      主站蜘蛛池模板: 久久发布国产伦子伦精品| 最新精品国偷自产在线| 91精品久久一区二区三区| 国产亚洲精品自在久久vr| 亚洲国产中文字幕在线视频综合| 99re6在线视频精品免费下载| 色悠悠成人综合在线视频| 运城市| 国产91成人亚洲综合在线 | 国产精品日本一区二区不卡视频 | 国产高清一区二区三区视频 | 午夜福利院一区二区三区| 国产精品中文字幕综合| 欧美熟妇乱子伦XX视频| 玩两个丰满老熟女久久网| 日本亚洲一区二区精品| 在线观看无码av免费不卡网站| 免费观看羞羞视频网站| av天堂亚洲天堂亚洲天堂| 无遮无挡爽爽免费视频| 人成午夜免费大片| 香蕉亚洲欧洲在线一区| 四虎永久免费很黄的视频| 久久精品亚洲精品国产色婷| 国产97色在线 | 免费| 国产成人高清亚洲一区二区| 久久久亚洲欧洲日产国码二区| 国产稚嫩高中生呻吟激情在线视频| 无码人妻丝袜在线视频| 亚洲天天堂天堂激情性色| 成人无码精品免费视频在线观看| 一区二区中文字幕久久| 成人无码潮喷在线观看| 精品久久久久中文字幕日本| 欧美日韩一线| 成人国产乱对白在线观看| 极品少妇无套内射视频| 色爱综合激情五月激情| 东京热一精品无码av| 国产成人久久综合第一区| 无码人妻精品一区二区三区蜜桃|