C# 手动实现UrlEncode(查看微软底层代码整理)

应用场景

最近在开发过程中遇到了一个UrlEncode方面的难题,服务端接口用的时Java编写的,客户端使用C#调用,通信采用Http方式,由于多方面原因,客户现场软件还在XP系统上运行,主程序开发版本是.netframework2.0。高版本的.net程序我们可以使用通用的RestSharp库进行对接处理,但是由于XP时代久远,已经不支持.NET4以上的基础架构。刚好这个现场在发送命令请求的时候如果请求参数不进行urlencode转码,服务器程序就无法识别相关参数,这下可难倒了我。

通过各方查找资料,网上提供的解决方案要么就是fx4.0+的解决方案,要么就给的HttpUtility.UrlEncode(str)调用以后某些字符转码不正常(不支持设置编码方式),无奈之下只能啃.net 源码查找解决方案。功夫不负有心人,终于在高版本的.net源码中找到了相关的踪迹,并将其移植到通用的代码库里面,方便低版本fx愉快的进行UrlEncode转码。为了不引入多余的dll就可以采用下面的方式,可以完美解决低版本.netframework urlencode编码问题,代码可控,可以应对现场各种需求,尤其是这种服务端接口自己不可控的情况下使用。

代码实现

using System;
posted @   星火燎猿*  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示