应用场景

最近在开发过程中遇到了一个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;

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

  1. 微软获GPT-3独家授权,可访问底层代码,Open AI:API用户可继续使用

    杨净 发自 凹非寺  量子位 报道 | 公众号 QbitAI 微软今天宣布,获得OpenAI GPT-3的独家授权. 毕竟也是投资10亿美元的金主爸爸,这个结果并不意外. 虽然目前尚不清楚具体授权许可 ...

  2. 微软对外开放更多软件技底层代码术文档

    微软对外开放更多软件技底层代码术文档 [url]http://www.sina.com.cn[/url] 2008年04月09日 07:17  新浪科技 新浪科技讯 北京时间4月9日消息,据国外媒体报 ...

  3. 推出了底层代码chatbot开发工具,Rulai获650万美元融资

    客户体验chatbot开发公司 Rulai 推出了底层代码 chatbot 开发工具,并获得了650万美元资金.Rulai 的开发团队在北京和加利福尼亚州坎贝尔设有办事处,开发团队由加利福尼亚大学圣克 ...

  4. 关于hive数仓这个概念的一些理解+查看hive底层引擎是否是tez

    hive其实本身并不是一个仓库, 而是一个sql翻译工具. 把sql翻译成mapreduce语句, hadoop集群去hdfs集群上执行这些mapreduce语句 在执行的过程中去yarn申请资源, ...

  5. String/StringBuilder/ToString()底层代码解析( JAVA / C# )

    C# /JAVA: 字符串构建利器StringBuilder区别 前言 名词解释 1.1 示例 案例一: 不同变量赋值( = ) 案例二:相同变量赋值( = ) 案例三:变量追加赋值( += ) 1. ...

  6. ML之FE:特征工程中常用的一些处理手段(缺失值填充、异常值检测等)及其对应的底层代码的实现

    ML之FE:特征工程中常用的一些处理手段(缺失值填充.异常值检测等)及其对应的底层代码的实现 目录 特征工程中常用的一些处理手段(缺失值填充.异常值检测等)及其对应的底层代码的实现

  7. Interview:算法岗位面试—10.12上午—上海某科技公司图像算法岗位(偏图像算法,互联网AI行业)技术面试考点之LoR逻辑回归的底层代码实现、特征图计算公式

    ML岗位面试:10.12上午-上海某科技公司图像算法岗位(偏图像算法,互联网AI行业)技术面试考点之LoR逻辑回归的底层代码实现.特征图计算公式 Interview:算法岗位面试-10.12上午-上海 ...

  8. 浅析VS2010反汇编 VS 反汇编方法及常用汇编指令介绍 VS2015使用技巧 调试-反汇编 查看C语言代码对应的汇编代码...

    浅析VS2010反汇编 2015年07月25日 21:53:11 阅读数:4374 第一篇 1. 如何进行反汇编 在调试的环境下,我们可以很方便地通过反汇编窗口查看程序生成的反汇编信息.如下图所示. ...

  9. java 动态加载ztree_JAVAEE——BOS物流项目02:学习计划、动态添加选项卡、ztree、项目底层代码构建...

    1 学习计划 1.jQuery easyUI中动态添加选项卡 2.jquery ztree插件使用 n 下载ztree n 基于标准json数据构造ztree n 基于简单json数据构造ztree( ...

最新文章

  1. Python错误“ImportError: No module named MySQLdb”解决方法
  2. linux命令gcc常用选项
  3. Delete Volume 操作 - 每天5分钟玩转 OpenStack(57)
  4. oracle学习笔记(十八) PL/SQL 游标
  5. 暑假练习:uva12563(01背包问题)
  6. CentOS 7笔记yum install epel-release
  7. 基于Nodejs的前端灰度发布方案_20190228
  8. HackerRank Twin Arrays 题解
  9. Python资源大全
  10. 只需45秒,用Python给故宫画一组雪景手绘图
  11. 北航计算机组成原理课程设计-2021秋 PreProject-MIPS-MIPS 汇编程序设计
  12. 人工智能之自然语言处理初探
  13. 2016推免面试经历纪实——四川大学计算机学院
  14. Hadoop 的sbin/start-dfs.sh 启动 报错
  15. 【EXCEL】解决因为删除、移动、隐藏行后序号不连续的问题
  16. python数字转换为大写中文_阿拉伯数字金额转中文大写 (python实现)
  17. app如何更换用户头像信息呢?不妨这样做
  18. 汽车电子之功能安全产品设计过程
  19. 【视频异常检测-论文阅读】Anomaly Detection in Video via Self-Supervised and Multi-Task Learning
  20. 2019上海埃森哲软件开发面试

热门文章

  1. 架构杂谈——也谈互联网系统架构演进
  2. Linux中shell语法和脚本编写
  3. 【javascript】事件环eventloop开餐厅版本总结
  4. ChatGPT的使用
  5. vs2017附加linux进程,使用调试器附加到运行的进程 - Visual Studio | Microsoft Docs
  6. 原画师为什么多数不到30就不做了?
  7. 机器人总动员片尾曲歌词_英语歌曲 ||《机器人总动员》Put on Your Sunday Clothes
  8. 大数据统计租房市场现状(北京篇)
  9. AlphabetJS --- 在console或者shell中打印字符图案的小工具
  10. 地面沉降数值模拟与案例分析