asp.net core webapi接收application/x-www-form-urlencoded和form-data参数
- 框架:asp.net core webapi
- asp.net core webapi接收参数,请求变量设置
目录
- 接收multipart/form-data、application/x-www-form-urlencoded类型参数
- 接收URL参数
- 接收上传的文件
- webapi接收json参数
- 完整控制器,启动类参考
- Program.cs
接收multipart/form-data、application/x-www-form-urlencoded类型参数
Post ([FromForm]TokenRequestInput user)
可以接收发送类型为multipart/form-data、application/x-www-form-urlencoded的数据
[HttpPost]public async Task<IActionResult> ChangePhoneNum([FromForm] TokenRequestInput user){ return Ok(11222);}/// <summary>/// 用户信息/// </summary>public class TokenRequestInput{/// <summary>/// 微信 用户的openid/// </summary>public string? openid { get; set; }/// <summary>/// 微信头像图片,base64字符串/// </summary>public string? head_img_base64 { get; set; }/// <summary>/// 微信昵称/// </summary>public string? nichen { get; set; }}
接收URL参数
请求地址
http://localhost:5170/api/User/GetToken?code=22222
[HttpGet]public async Task<IActionResult> GetToken(string code){var result = await wxAppletLoginBll.GetLoginToken(code);return Ok(result);}
接收上传的文件
IFormFile file这个参数是接收文件,mimeType=multipart/form-data
参数userId,通过url参数传入
/// <summary>
/// 接收上传的文件
/// </summary>
/// <param name="file">文件二进制</param>
/// <param name="userId">url参数</param>
/// <returns></returns>
[HttpPost]
public async Task<IActionResult> GetAdd(IFormFile file, string userId)
{ return Ok("ok");
}
webapi接收json参数
发送json参数
{"openid": "string","head_img_base64": "string","nichen": "string"
}
[HttpPost]public async Task<IActionResult> AddUser(TokenRequestInput user){ return Ok(3344);}
完整控制器,启动类参考
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using WebProjectNet7.DataBaseEntity.Entity;
using WebProjectNet7.IBLL;
using WebProjectNet7.ViewEntity;namespace Api_BigData.Controllers
{/// <summary>/// 预警/// </summary>[Route("api/[controller]/[action]")][MyRequestFilter][ApiController]public class WarningController : ControllerBase{readonly IWaringLogBll waringLogBll = AppServicesHelpter.GetServices<IWaringLogBll>();/// <summary>/// 设置预警记录,已经读了/// </summary>/// <param name="logId">预警id</param>/// <returns></returns>[HttpGet]public async Task<IActionResult> SetReadedAsync(long logId){var data = await waringLogBll.SetReadedAsync(logId);return Ok(data);}}
}
Program.cs
using Api_BigData;
using InterfaceRegister;
using Microsoft.AspNetCore.Html;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.Options;
using Microsoft.OpenApi.Models;
using Mysqlx;
using Newtonsoft.Json.Serialization;
using System.Reflection;
using WebProjectNet7.DataBaseEntity.Tool;
using WebProjectNet7.IBLL;
using WebProjectNet7.IBLL_impl;
using WebProjectNet7.IDAO;
using WebProjectNet7.IDAO_impl;
using WebProjectNet7.ViewEntity;const string title = "测试, 大数据webapi";var builder = WebApplication.CreateBuilder(args);// Add services to the container.
builder.Services.AddControllers(ops =>{//全局异常过滤器,注册ops.Filters.Add<ExceptionFilter>();}
).AddNewtonsoftJson(options =>
{
//不设置,字段为首字母小写;options.SerializerSettings.ContractResolver = new DefaultContractResolver();options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
});// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(options =>
{options.SwaggerDoc("v1", new OpenApiInfo { Title = title, Version = "1.0" });// 让Swagger显示每个接口的注释var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename));//实体字段描述options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, "WebProjectNet7.DataBaseEntity.xml"));options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, "WebProjectNet7.ViewEntity.xml"));
});//依赖注入
//微信业务接口
builder.Services.AddSingleton<IWxAppletLoginBll, WxAppletLoginBll_impl>();//公共部分接口
RegisterHandle.Register(builder);//IHttpContextAccessor 在其他程序集中获取HttpContext
builder.Services.AddHttpContextAccessor();var app = builder.Build(); Configure the HTTP request pipeline.
//if (app.Environment.IsDevelopment())
//{
// app.UseSwagger();
// app.UseSwaggerUI();
//}//生产环境也使用
app.UseSwagger();
app.UseSwaggerUI(options =>
{options.DocumentTitle = title;
});app.Use(async (context, next) =>
{if (context.Request.Method == "OPTIONS"){//允许处理跨域context.Response.Headers.Add("Access-Control-Allow-Origin", "*");context.Response.Headers.Add("Access-Control-Allow-Headers", "*");context.Response.Headers.Add("Access-Control-Allow-Methods", "*");await context.Response.CompleteAsync();}else{//允许处理跨域context.Response.Headers.Add("Access-Control-Allow-Origin", "*");context.Response.Headers.Add("Access-Control-Allow-Headers", "*");context.Response.Headers.Add("Access-Control-Allow-Methods", "*");await next();}
});string direxport = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "wx_head_img");
if (!System.IO.Directory.Exists(direxport))
{System.IO.Directory.CreateDirectory(direxport);
}app.UseStaticFiles(new StaticFileOptions()
{RequestPath = new PathString("/wx_head_img"),FileProvider = new PhysicalFileProvider(direxport)
});app.UseAuthorization();app.MapControllers();AppServicesHelpter.App = app;app.MapGet("/", () => "Hello World,欢迎," + title + ",访问/swagger 查看接口文档");app.Run();相关文章:
asp.net core webapi接收application/x-www-form-urlencoded和form-data参数
框架:asp.net core webapiasp.net core webapi接收参数,请求变量设置 目录 接收multipart/form-data、application/x-www-form-urlencoded类型参数接收URL参数接收上传的文件webapi接收json参数完整控制器,启动类参考Program.cs 接收multipar…...
程序环境和预处理(2)
文章目录 3.2.7 命名约定 3.3 #undef3.4 命令行定义3.5 条件编译3.6 文件包含3.6.1 头文件被包含的方式3.6.2 嵌套文件包含 4. 其他预处理指令 3.2.7 命名约定 一般来讲函数和宏的使用语法很相似,所以语言本身没法帮我们区分二者,那我们平时的一个习惯是…...
Redis安全加固策略:绑定Redis监听的IP地址 修改默认端口 禁用或者重命名高危命令
Redis安全加固策略:绑定Redis监听的IP地址 & 修改默认端口 & 禁用或者重命名高危命令 1.1 绑定Redis监听的IP地址1.2 修改默认端口1.3 禁用或者重命名高危命令1.4 附:redis配置文件详解(来源于网络) 💖The Beg…...
Vuepress的使用
介绍 将markdown静态资源转换成html。 动态资源的转换还有很多,为什么要使用Vuepress? 目录分析 项目配置 详情 具体配置请看文档 插件配置 vuepress-theme-vdoing 主题插件 npm install vuepress-theme-vdoing -D先安装依赖配置主题 使用vuep…...
docker安装php7.4安装
容器 docker pull centos:centos7 docker run -dit -p9100:9100 --name“dade” --privilegedtrue centos:centos7 /usr/sbin/init 一、安装前库文件和工具准备 1、首先安装 EPEL 源 yum -y install epel-release2.安装 REMI 源 yum -y install http://rpms.remirepo.net/en…...
曲线生成 | 图解Dubins曲线生成原理(附ROS C++/Python/Matlab仿真)
目录 0 专栏介绍1 什么是Dubins曲线?2 Dubins曲线原理2.1 坐标变换2.2 单步运动公式2.3 曲线模式 3 Dubins曲线生成算法4 仿真实现4.1 ROS C实现4.2 Python实现4.3 Matlab实现 0 专栏介绍 🔥附C/Python/Matlab全套代码🔥课程设计、毕业设计、…...
「Vue3系列」Vue3 组件
文章目录 一、Vue3 组件二、Vue3 组件实例三、Vue3 官方组件四、Vue3 常用组件五、相关链接 一、Vue3 组件 Vue3 是 Vue.js 的最新版本,它引入了许多新的特性和改进。在 Vue3 中,组件是构建应用程序的核心部分,它们可以重用、组合和嵌套。Vu…...
Git实战(2)
git work flow ------------------------------------------------------- ---------------------------------------------------------------- 场景问题及处理 问题1:最近提交了 a,b,c,d记录,想把b记录删掉其他提交记录保留: git reset …...
Java ElasticSearch-Linux面试题
Java ElasticSearch-Linux面试题 前言1、守护线程的作用?2、链路追踪Skywalking用过吗?3、你对G1收集器了解吗?4、你们项目用的什么垃圾收集器?5、内存溢出和内存泄露的区别?6、什么是Spring Cloud Bus?7、…...
微信小程序通过服务器控制ESP8266
声明 本文实现了ESP8266、微信小程序、个人服务器三者互相通信,并且小程序能发消息给微信用户 本文所有代码和步骤均为亲测有效 以下代码均为从网上搜索到后本人加以改动的,并非完全原创,若作者希望删除可联系我 ESP8266与个人服务器通信 ESP8266配置 通过串口通信使用…...
题目 1434: 蓝桥杯历届试题-回文数字
题目描述: 观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。 本题要求你找到一些5位或6位的十进制数字。满足如下要求: 该数字的各个数位…...
访问修饰符、Object(方法,使用、equals)、查看equals底层、final--学习JavaEE的day15
day15 一、访问修饰符 含义: 修饰类、方法、属性,定义使用的范围 理解:给类、方法、属性定义访问权限的关键字 注意: 1.修饰类只能使用public和默认的访问权限 2.修饰方法和属性可以使用所有的访问权限 访问修饰符本类本包…...
『大模型笔记』最大化大语言模型(LLM)的性能(来自OpenAI DevDay 会议)
最大化大语言模型(LLM)的性能(来自OpenAI DevDay 会议) 文章目录 一. 内容介绍1.1. 优化的两个方向(上下文优化和LLM优化)1.2. 提示工程:从哪里开始1.3. 检索增强生成:拓展知识边界1.4. 微调:专属定制二. 参考文献一. 内容介绍 简述如何以可扩展的方式把大语言模型(LLMs)…...
深度学习:开启你的AI探索之旅
在这个信息爆炸的时代,人工智能(AI)已经渗透到我们生活的方方面面,从智能语音助手到自动驾驶汽车,从智能推荐系统到医疗影像诊断,AI的身影无处不在。而深度学习,作为AI领域的一大核心技术,更是引领着这场科技革命的浪潮。那么,如何入门深度学习,踏上这趟充满挑战与机…...
第十四届蓝桥杯大赛B组 JAVA 蜗牛 (递归剪枝)
题目描述: 这天,一只蜗牛来到了二维坐标系的原点。 在 x 轴上长有 n 根竹竿。它们平行于 y 轴,底部纵坐标为 0,横坐标分别为 x1, x2, …, xn。竹竿的高度均为无限高,宽度可忽略。蜗牛想要从原点走到第 n 个竹竿的底部也…...
基于React低代码平台开发:构建高效、灵活的应用新范式
文章目录 一、React与低代码平台的结合优势二、基于React的低代码平台开发挑战三、基于React的低代码平台开发实践四、未来展望《低代码平台开发实践:基于React》编辑推荐内容简介作者简介目录前言为什么要写这本书 读者对象如何阅读本书 随着数字化转型的深入&…...
在Linux部署Docker并上传静态资源(快速教程)
Nginx快速上手 安装必要的软件包 yum install -y yum-utils device-mapper-persistent-data lvm2设置Docker仓库 通过以下命令添加Docker的官方仓库到yum源中: yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo安装Dock…...
【场景测试用例】带有广告图案的纸杯
从以下几个纬度出发考虑: 功能 是否可以承载液体,热水,温水,冰水是否可以承载非液体类的物品容量,空杯,半杯,满杯 UI 广告图案设计是否合理 性能 最大承受的容量内不漏水(负载测试)最大承受的温…...
《TCP/IP详解 卷一》第10章 UDP 和 IP 分片
目录 10.1 引言 10.2 UDP 头部 10.3 UDP校验和 10.4 例子 10.5 UDP 和 IPv6 10.6 UDP-Lite 10.7 IP分片 10.7.1 例子:IPV4 UDP分片 10.7.2 重组超时 10.8 采用UDP的路径MTU发现 10.9 IP分片和ARP/ND之间的交互 10.10 最大UDP数据报长度 10.11 UDP服务器…...
MyBatisPlus(SpringBoot版)的分页插件
目录 一、前置工作: 1.整体项目目录结构 2.创建普通javamaven项目。 3.导入依赖,改造成springboot项目 4.配置启动类 5.创建service接口及其实现类 6.创建接口Mapper 7.配置数据源 8.创建数据库表 二、使用MP(mybatisplus)的分页插件 二、使…...
OCRmyPDF实战指南:加密PDF文件处理全流程解析
OCRmyPDF实战指南:加密PDF文件处理全流程解析 【免费下载链接】OCRmyPDF OCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched 项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF 在数字化办公环境中,…...
Nginx何以征服高性能之巅?深入剖析其架构设计哲学
前言 在现代互联网的星辰大海中,Nginx无疑是一艘性能卓越的航母。它轻松应对着每秒数十万计的并发请求,成为全球众多高流量网站(如Netflix、知乎、豆瓣等)不可或缺的基础组件。许多人将其高性能归功于某项“黑科技”,但事实上,Nginx的高性能是其深邃的架构设计哲学与一系…...
告别面包板!用Multisim仿真74LS192+数码管,快速验证你的抢答器电路设计
用Multisim高效仿真数字电路:从74LS192计数器到抢答器实战 在电子设计领域,仿真技术已经成为硬件开发不可或缺的一环。想象一下这样的场景:你脑海中浮现出一个智能抢答器的设计方案,但不确定计数器与编码器的配合是否合理…...
从哈希表到链表:一次搞懂链地址法解决冲突的C++实现细节(含插入与删除操作避坑)
从哈希表到链表:链地址法的C实战精解与避坑指南 在数据结构的世界里,哈希表因其接近O(1)的理想查找效率而备受青睐。但当我们真正动手实现时,特别是采用链地址法解决冲突时,那些看似简单的链表操作却暗藏玄机。本文将带您深入链地…...
开源大模型研报工具:Pixel Epic在ESG评级机构的自动化报告生成实践
开源大模型研报工具:Pixel Epic在ESG评级机构的自动化报告生成实践 1. 项目背景与核心价值 在金融分析、投资决策和ESG评级领域,高质量的研究报告是决策的重要依据。传统研报撰写过程面临三大痛点: 人力成本高:分析师需要花费大…...
【2026必看】临沂销售增长咨询,哪家公司最权威?
在当前竞争激烈的市场环境中,商贸和生产型企业要想实现销售额的稳步增长,选择一家专业的管理咨询公司至关重要。那么,在临沂,哪家公司在销售增长咨询方面最具权威性呢?本文将为您详细解析,并推荐山东润行管…...
Hunyuan-MT-7B翻译模型实战:打造个人多语言内容翻译流水线
Hunyuan-MT-7B翻译模型实战:打造个人多语言内容翻译流水线 1. 引言:为什么选择Hunyuan-MT-7B 在全球化内容创作时代,多语言翻译需求呈现爆发式增长。传统翻译服务面临三大痛点:成本高昂(专业翻译每千字收费300-500元…...
NaViL-9B中小企业AI落地方案:低成本双卡部署多模态智能助手
NaViL-9B中小企业AI落地方案:低成本双卡部署多模态智能助手 1. 平台介绍 NaViL-9B是上海人工智能实验室研发的原生多模态大语言模型,能够同时处理文本和图像输入,为中小企业提供经济高效的AI解决方案。这款模型特别适合需要同时处理文字和图…...
Simufact.Forming工艺链仿真实战:从冷成型到热处理的完整流程配置技巧
Simufact.Forming工艺链仿真实战:从冷成型到热处理的完整流程配置技巧 在高端制造领域,工艺链仿真是确保产品质量和生产效率的关键环节。Simufact.Forming作为业界领先的金属成型仿真解决方案,其工艺链功能能够无缝衔接从冷成型到热处理的完整…...
小区安防升级,人脸识别摄像头到底解决了哪些痛点?
住老小区的朋友都懂,门禁卡忘带、被复制、外来人员随意进出,都是日常糟心事。最近不少社区换上了人脸识别摄像头,不是什么花架子,而是真真切切解决了安防和通行的麻烦。它不用带卡、不用掏手机,刷脸就能秒开门…...
