工作中发现一个问题, 通过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

05-11 05:11