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