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;
                
                    
                
                
            
        
浙公网安备 33010602011771号