.net core MVC接受來自自前端的GET和POST請求方法的區別

来源:https://www.cnblogs.com/t140603/archive/2018/12/24/10156954.html
-Advertisement-
Play Games

小伙伴們都知道,常用的http請求有兩種方式,即GET方法和POST方法,很多剛入門的童鞋難免都會有一個誤區,是不是GET是從伺服器上獲取數據,POST是向伺服器傳送數據? 我的理解是:不論是GET還是POST,都是向伺服器提交數據,並且請求之後都會從伺服器獲取數據,兩者的區別僅是傳送方式不同而已, ...


小伙伴們都知道,常用的http請求有兩種方式,即GET方法和POST方法,很多剛入門的童鞋難免都會有一個誤區,是不是GET是從伺服器上獲取數據,POST是向伺服器傳送數據?

我的理解是:不論是GET還是POST,都是向伺服器提交數據,並且請求之後都會從伺服器獲取數據,兩者的區別僅是傳送方式不同而已,GET通過地址欄傳輸,POST通過報文傳輸。對資源的增刪改查操作其實都可以通過get/post方法來實現,下麵就詳細介紹一下這兩種方法:

一、請求原理以及方式:

1、GET 請求

GET請求不存在請求實體部分,鍵值對參數放置在 URL 尾部,瀏覽器把form數據轉換成一個字串(name1=value1&name2=value2...),然後把這個字串追加到url後面,用?分割,載入這個新的url。因此請求頭不需要設置 Content-Type欄位。

非 ASCII 碼會自動進行編碼轉換,例如發送請求:www.lalalal.com?haha=哈哈    。

值得一提的是,GET 參數的編碼方式是無法人為干涉的,這導致了不同瀏覽器有不同的編碼方式,因此最穩妥的方案是人工預編碼,人工解碼,從而禁止瀏覽器編碼的干涉。

2、POST 請求

POST把提交的數據則放置在是HTTP包的包體中。Http Header里的Content-Type一般有好幾種方式,但是我自己接觸到的是以下兩種方式:

a)   application/x-www-form-urlencoded:數據被編碼為名稱/值對。這是標準的編碼格式。瀏覽器的原生 form 表單,如果不設置 enctype 屬性,那麼最終就會以 application/x-www-form-urlencoded 方式提交數據。會將表單內的數據轉換拼接成 key-value 對(非 ASCII 碼進行編碼)

b)   application/json:由於JSON 格式支持比鍵值對複雜得多的結構化數據,這一點現在越來越多的人把它作為請求頭,用來告訴服務端消息主體是序列化後的 JSON 字元串。本文就是重點介紹這種方式。

二、後端獲取參數的方式

對於後臺接受來自前臺的請求時,且Content-Type為application/json時,可以傳遞參數也可以不傳遞參數,但是多數情況下是需要有參數傳來的,所以,下麵就只介紹有參數傳過來的情形:

1、獲取GET參數 Get:([FromQuery] User user)

[fromQuery]是告訴模型綁定在解析的過程中從HttpContext中那一部分獲取信息。

2、獲取POST參數 Post:([(FromBody)] User user)

[FromBody] 是參數綁定的過程中,告訴框架該參數是使用配置過的格式化程式從Http Body 中解析。和get不同的是,在接受參數的時候必須要先建立一個實體類來接受參數,並且該實體類必須與前端的請求參數一模一樣。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這篇文章一起來回顧複習下spring的事務操作.事務是spring的重點, 也是面試的必問知識點之一. 說來這次面試期間,也問到了我,由於平時用到的比較少,也沒有關註過這一塊的東西,所以回答的不是特別好,所以借這一篇文章來回顧總結一下,有需要的朋友,也可以點贊收藏一下,複習一下這方面的知識,為年後的 ...
  • 我們可以在application.properties中配置自定義的屬性值,為了獲取這些值,我們可以使用spring提供的@value註解,還可以使用springboot提供的@ConfigurationProperties註解非常方便的完成屬性值的註入。 ...
  • 剛開始接觸 python 的時候,對 python 中的 wargs (可變參數) 和 kwargs (關鍵字參數)的理解不是很透徹,看了一下 《Explore Python》一書,裡面對這一部分的描述相對淺顯易懂, 這裡依據個人理解進行相關總結。 可變參數( args) 對於可變參數可以聯想到 C ...
  • 一.函數調用 在python中內置了很多函數,我們可以直接調用 。想要調用函數首先要知道函數的名稱及包含的參數,還可以通過查看python官方的文檔:https://docs.python.org/3/library/functions.html 就拿abs()函數來舉例 用來返回數值的絕對值 >> ...
  • 上面的mixins、generics都是rest_framework里的模塊,我們可以繼承其中的某些類,達到代碼量減少的效果,這裡充分體現出了面向對象的繼承 一、mixins模塊 二、generics模塊 三、通過一個簡單的例子,順帶寫mixins,generics的用處 ...
  • 昨天面試碰到了面試官問spring的時候,問完ioc,然後下個問題我以為是aop,後來才聽清是動態代理,感覺回答的不是太好,也是好久不接觸 1.靜態代理 代理模式也就委托模式。 三個角色: 1. Subject抽象主題角色:介面 2. RealSubject具體主題角色:介面的實現類,業務邏輯的具體 ...
  • python爬蟲scrapy項目(二) 爬取目標:房天下全國租房信息網站(起始url:http://zu.fang.com/cities.aspx) 爬取內容:城市;名字;出租方式;價格;戶型;面積;地址;交通 反反爬措施:設置隨機user-agent、設置請求延時操作、 1、開始創建項目 2、進入 ...
  • 本來昨天應該更新的,但是由於各種原因,抱歉,讓追這個系列的朋友久等了。上一篇文章 [在.Net Core 使用緩存和配置依賴策略](https://www.cnblogs.com/viter/p/10146312.html). 講的是如何使用本地緩存,那麼本篇文章就來瞭解一下如何使用分散式緩存,通過... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...