今天在做dynamics crm的接口时,通过webapi调用fetchxml ,在做模糊查找某个文本字段时,遇到一个怪的问题;
string.Format(@"", custname)
当模糊匹配的是数字时,输入1,2,3,4这样的单独的数字没有问题;而当输入22、12、213…以后,就报invalidxml;
然后调试时,将fetchxml拿出来用FetchXml Tester测试,又没有问题;
所以我就定位到了问题点,出来了webapi上;
我将url copy出来,放到浏览器查询,发现也还是报错;那么就确定了不是请求方法的问题;
突然发现浏览器中的url有好多%20这种%+数字的特殊情况,我就想是不是因为这个特殊字符的问题,然后搜了一波资料,果然有所发现;
网址URL中特殊字符转义编码
字符 - URL编码值
空格 - %20
" - %22
- %23
% - %25
& - %26
( - %28
) - %29
-
- %2B
, - %2C
/ - %2F
: - %3A
; - %3B
< - %3C
= - %3D
- %3E
? - %3F
@ - %40
\ - %5C
| - %7C
所以我将代码中的%做了一个转义,果然就好了