首页 > 编程语言 >C# WebApi接收参数的常用方式

C# WebApi接收参数的常用方式

时间:2023-05-30 22:12:49浏览次数:56  
标签:WebApi 请求 C# Request Headers 参数 字符串 接收

C#后端开发请求相关知识

C# WebApi接收参数的常用方式

  • 查询字符串参数:查询字符串是通过 HTTP GET 请求中的 URL 中传递的键值对。在 WebAPI 中,可以使用以下方式获取查询字符串参数:
// 使用 Request.QueryString 获取单个查询字符串参数
string name = Request.QueryString["name"];

// 使用 Request.QueryString 获取所有查询字符串参数
IEnumerable<string> queryKeys = Request.Query.Keys;
foreach (var key in queryKeys)
{
    string value = Request.Query[key];
}
  • 路由参数:路由参数是从 URL 中提取的变量值。在 WebAPI 中,可以使用以下方式获取路由参数:
[HttpGet("users/{id}")]
public IActionResult GetUser(int id)
{
    // 处理路由参数 id
}
  • 请求正文:请求正文通常用于在 HTTP POST 或 PUT 请求中传递复杂的数据类型,例如 JSON 或 XML。在 WebAPI 中,可以使用以下方式获取请求正文:
[HttpPost("users")]
public IActionResult CreateUser([FromForm] User user)
{
    // 处理表单数据 user
}
  • 头部信息:HTTP 头部信息通常包含客户端和服务器之间的元数据。在 WebAPI 中,可以使用以下方式获取头部信息:
// 使用 Request.Headers 获取所有头部信息
IEnumerable<string> headerKeys = Request.Headers.Keys;
foreach (var key in headerKeys)
{
    string value = Request.Headers[key];
}

// 使用 Request.Headers 获取单个头部信息
string contentType = Request.Headers["Content-Type"]

总结:在请求过程中,请求的信息可以放置在3个地方

  1. 放置在请求路径中,有QueryString查询字符串和Router路由参数两种方式。
  2. 放置在请求头Header中。
  3. 放置在请求体Body中:
    1. 在请求头中设置Context-Type=application/json等文本类型时,C#后端会把Body中的数据当中Json字符串处理,用[FromBody]进行参数接收。
    2. 在请求头中设置Context-Type=multipart/form-data类型时候,C#后端会把Body中的数据当作键值对来进行解析,用[FromFrom]进行参数接收。

标签:WebApi,请求,C#,Request,Headers,参数,字符串,接收
From: https://www.cnblogs.com/niaofei123/p/17444635.html

相关文章

  • 关于c语言习题(529)
    1、从字符数组中读出相应的整数、实数。(写的有点可怕,先找第一个数字就会简单很多)//从一个字符数组中读出相应的整数、实数#include<stdio.h>#include<math.h>#include<string.h>intmain(){voidatoif(chara[]);chara[30];fgets(a,30,stdin);atoif(a......
  • shellcode的一个demo例子
    handy-shellcodeBinaryExploitation,50pointsDescription:Thisprogramexecutesanyshellcodethatyougiveit.Canyouspawnashellandusethattoreadtheflag.txt?#include<stdio.h>#include<stdlib.h>#include<string.h>#include&l......
  • spark context stop use with as
    调用方法:withsession.SparkStreamingSession('CC_Traffic_Realtime',ssc_time_windown)asss_session:kafkaStreams=ss_session.get_direct_stream(TOPICNAME)kafkaStreams.transform(xxxx)...ss_session.ready_to_go()实现方......
  • Python读excel——xlrd
    Python读excel——xlrdPython读取Excel表格,相比xlwt来说,xlrd提供的接口比较多,但过程也有几个比较麻烦的问题,比如读取日期、读合并单元格内容。下面先看看基本的操作:图表数据整体思路为,打开文件,选定表格,读取行列内容,读取表格内数据详细代码如下:importxlrdfromdatetimeimportda......
  • python pickle to json
    ref:https://gist.github.com/Samurais/567ebca0f59c612eb977065008aad867 '''Convertapklfileintojsonfile'''importsysimportosimportpickleimportjsondefconvert_dict_to_json(file_path):withopen(file_path,&......
  • elasticsearch date_histogram
    (5)DateHistogramAggregation时间直方图聚合,专门对时间类型的字段做直方图聚合。这种需求是比较常用见得的,我们在统计时,通常就会按照固定的时间断(1个月或1年等)来做统计。下面统计学校中同一年出生的学生数。curl-XPOST"192.168.1.101:9200/student/student/_search?search_type=c......
  • tflearn Training Step每次 We will run it for 10 epochs (t
    TrainingTFLearnprovidesamodelwrapper'DNN'thatcanautomaticallyperformsaneuralnetworkclassifiertasks,suchastraining,prediction,save/restore,etc...Wewillrunitfor10epochs(thenetworkwillseealldata10times)withabat......
  • AngularJS2.0 quick start——其和typescript结合需要额外依赖
    AngularJS2发布于2016年9月份,它是基于ES6来开发的。运行条件!由于目前各种环境(浏览器或Node)暂不支持ES6的代码,所以需要一些shim和polyfill(IE需要)让ES6写的代码能够转化为ES5形式并可以正常运行在浏览器中。从上图可以看出在Es5浏览器下需要以下模块加载器:systemjs -通用模块......
  • MongoDB C++ gridfs worked example
    使用libmongoc,参考:http://mongoc.org/libmongoc/current/mongoc_gridfs_t.html#include<mongoc.h>#include<stdio.h>#include<stdlib.h>#include<fcntl.h>classMongoGridFS{public:MongoGridFS(constchar*db);~MongoGridFS();......
  • cassandra cpp driver中bind list——用cass_statement_bind_collection函数
     CassErrorinsert_into_collections(CassSession*session,constchar*key,constchar*items[]){CassErrorrc=CASS_OK;CassStatement*statement=NULL;CassFuture*future=NULL;CassCollection*collection=NULL;constchar**item=NULL;c......