用Delphi2010编码实现。在开发中遇到了几个问题,现写出来供需要的朋友参考。
1. SSL问题,用的是indyhttp控件,使用SSL时需要添加 IdSSLIOHandlerSocketOpenSSL1 组件
然后 idhttp的iohandler 属性指向 IdSSLIOHandlerSocketOpenSSL1。
然后 SSLoptions 的method属性改为 sslvSSLv23
然后再放置两个SSL用到的 DLL 文件,可从这里下载Delphi 2010兼容的dll文件 http://pan.baidu.com/s/1mh6Lu6O
2.图片编码问题,刚开始试用了各种编码,总是提示 error_code":216201,"error_msg":"image format error
后在网上看到有人提示indy控件默认会对参数重新编码,把这个属性关闭后图片上传正常。
具体属性:httpoptions下的hoforceencodeparams关闭。
图片编码为base64,然后urlencode一下即可。
3.识别完成后的中文乱码问题
其实传回的只要utf8转为unicode的,但由于一开始图简单,用了 result:= indyhttp.post(url,img) 这样的方法来直接获取返回值,导致返回值被indy又编码了一次。然后再解码就总是不正常。
后改为post内用流接收返回值,然后再utf8解码正常。
1