在delphi xe下测试REST Server,其中有个ReverseString服务器函数,就是把一个传入的字串翻转。用DataSnap调用是:
然而用http get来调用时却要注意参数的编码:
在对参数编码时,有两个现成的函数:
1、IdURI.pas的TIdURI.ParamsEncode
这个函数里面把需要转义的字符定义为: UnsafeChars: TIdUnicodeString = '*<>#%"{}|/^[]`'; {do not localize}
但是这样不够,这两个字符没有包括:/?,如果参数中有这些字符,结果就不对了,或者导致调用失败。修改这个函数把这两个字符加上,就可以了。
2、httpApp.pas的HTTPEncode
首先,这个函数的参数是ansistring,其次,里面把空格转成加号,不能满足需要。