C# httpwebrequest post 传输百分号‘%’
转载:http://blog.csdn.net/qqstrive/article/details/8229601
通过webrequest的post传输数据的时候,如果url里面的参数带有‘%’,那么在取地址栏的参数的时候会出现空指针,或者是错误。
string URL = http://127.0.0.1/file.do ;
string postdata = "domethod=list&content=30%";
解决办法:
对于postdata参数中的content 进行unciond或者是base64编码,再进行传输到服务端,服务端接收后再进行解码操作即可。
base64编码%变为JQ==
unicode编码 %变为\u0025
首先先来说一下为什么要urlencode
http://blog.csdn.net/henulwj/article/details/7916557
1.为了正常获取值
字符 特殊字符的含义 URL编码
# 用来标志特定的文档位置 %23
% 对特殊字符进行编码 %25
& 分隔不同的变量值对 %26
+ 在变量值中表示空格 %2B
\ 表示目录路径 %2F
= 用来连接键和值 %3D
? 表示查询字符串的开始 %3F
当url中含有以上列表中的一些字符时就无法准确的接收其中的值。
2.如果要传递的参数不想让人一眼就看出来的话,也可以urlencode一下,url就会变成一段编码后的长长的字符串。
至于urldecode就没什么好说的了
就是把urlecode编码后的url字符串再解码成原来的url
你encode了
肯定需要反向操作一下,即decode
注:.net下面是用HttpUtility.UrlEncode()和HttpUtility.UrlDecode()
来实现url的encode和decode操作的
作者:阿笨
【官方QQ一群:跟着阿笨一起玩NET(已满)】:422315558
【官方QQ二群:跟着阿笨一起玩C#(已满)】:574187616
【官方QQ三群:跟着阿笨一起玩ASP.NET(已满)】:967920586
【官方QQ四群:Asp.Net Core跨平台技术开发(可加入)】:829227829
【官方QQ五群:.NET Core跨平台开发技术(可加入)】:647639415
【网易云课堂】:https://study.163.com/provider/2544628/index.htm?share=2&shareId=2544628
【腾讯课堂】:https://abennet.ke.qq.com
【51CTO学院】:https://edu.51cto.com/sd/66c64
【微信公众号】:微信搜索:跟着阿笨一起玩NET