工作中发现一个问题, 通过curl调用接口传递cookie操作用户的数据, 接口的程序解析不了cookie中的数据.
经过排查发现curl发送的cookie数据为
TZ+Gn+rEk+6G4d
而接口取到的cookie数据为
TZ Gn rEk 6G4d
原来接口取出的是decode后的数据, 等同于urldecode(‘TZ+Gn+rEk+6G4d‘), 结果就是这样 TZ Gn rEk 6G4d
"+" 号会被urldecode成空格, 数据错误, 当然解析错误.
解决方法:
curl中传递的cookie值需要是urlencode后的,
urlencode(‘TZ+Gn+rEk+6G4d‘) = TZ%2BGn%2BrEk%2B6G4d
这样接口数据取到的数据就等同 urldecode(‘TZ%2BGn%2BrEk%2B6G4d‘), 结果为 TZ+Gn+rEk+6G4d