当前位置: 首页 > news >正文

netcore url编码/解码

直接上代码

using Microsoft.AspNetCore.Mvc;
using System.Web;namespace SaaS.OfficialWebSite.Web.Controllers
{public class UrlCodeController : Controller{public IActionResult Index(){return View();}[HttpPost]public IActionResult Encode([FromBody] UrlEncodeRequest request){if (string.IsNullOrWhiteSpace(request.Text)){return BadRequest(new { error = "输入文本不能为空" });}try{string encodedText;if (request.EncodeFullUrl){// 编码整个URLencodedText = request.EncodeSpaceAsPlus? Uri.EscapeUriString(request.Text).Replace("%20", "+"): Uri.EscapeUriString(request.Text);}else{// 仅编码查询部分var uriBuilder = new UriBuilder(request.Text);var query = HttpUtility.ParseQueryString(uriBuilder.Query);if (request.EncodeSpaceAsPlus){uriBuilder.Query = query.ToString().Replace("%20", "+");}encodedText = uriBuilder.Uri.AbsoluteUri;}return Ok(new { encodedText });}catch (Exception ex){return StatusCode(500, new { error = "编码过程中发生错误", details = ex.Message });}}[HttpPost]public IActionResult Decode([FromBody] UrlDecodeRequest request){if (string.IsNullOrWhiteSpace(request.Text)){return BadRequest(new { error = "输入文本不能为空" });}try{// 先替换+号为空格,然后解码var decodedText = Uri.UnescapeDataString(request.Text.Replace("+", " "));return Ok(new { decodedText });}catch (Exception ex){return StatusCode(500, new { error = "解码过程中发生错误", details = ex.Message });}}}public class UrlEncodeRequest{public string Text { get; set; }public bool EncodeFullUrl { get; set; } = true;public bool EncodeSpaceAsPlus { get; set; } = false;}public class UrlDecodeRequest{public string Text { get; set; }}
}

运行效果:url编码/解码

http://www.lryc.cn/news/573648.html

相关文章:

  • [计算机网络] 局域网内的网络传输
  • SpringBoot+Vue服装商城系统 附带详细运行指导视频
  • 3dgs涉及的基本概念:球谐系数(SH 系数)等
  • Python之数据容器
  • 【JavaScript】代码整理
  • vim学习流程,以及快捷键总结
  • Python 深度学习基础:TensorFlow 入门——从张量到神经网络的实战指南
  • 【2025年软考中级】第三章数据结构3.4 数组与矩阵
  • Flink作业三种部署模式:架构、配置与实战应用
  • rknn优化教程(三)
  • Bytemd@Bytemd/react详解(编辑器实现基础AST、插件、跨框架)
  • 【云原生】Docker 部署 Elasticsearch 9 操作详解
  • Git Worktree:高效开发的秘密武器
  • C# 数组(数组协变和数组继承的有用成员)
  • webpack+vite前端构建工具 - 8 代码分割
  • 【数据结构试题】
  • C#Halcon从零开发_Day13_几种阈值分割方法
  • 《高等数学》(同济大学·第7版)第五章 定积分 第四节反常积分
  • 目标检测neck算法之MPCA和FSA的源码实现
  • python实战项目77:足球运动员数据分析
  • React 18.2.0 源码打包
  • C++智能指针的知识!
  • 无人机表演越来越火,C端市场大爆发
  • Java基础八股文 - 面试者心理历程与标准答案
  • 微处理器原理与应用篇---常见基础知识(7)
  • 反无人机系统:技术利刃如何守护低空安全?
  • 啥是 SaaS
  • C# .NET多线程异步记录日声,队列LOG
  • docker镜像封装与发布微服务学习
  • NotePad++ 怎么没有找到插件管理?