找回密码
 立即注册
收起左侧

Qt UrlEncode问题

1
回复
7666
查看
[复制链接]

尚未签到

来源: 2018-5-3 10:57:38 显示全部楼层 |阅读模式
5Qter豆
最近弄一个百度AI文字识别的项目,服务器要求post内容为:
  1. curl -i -k 'https://aip.baidubce.com/rest/2.0/ocr/v1/general?access_token=【调用鉴权接口获取的token】' --data 'image=【图片Base64编码,需UrlEncode】' -H 'Content-Type:application/x-www-form-urlencoded'
复制代码
我用QT实现如下:
  1. void RequestDialog::startRequest()
  2. {
  3. QFile file("d:/word.jpg");
  4. if(!file.open(QFile::ReadOnly))
  5. {
  6. return ;
  7. }
  8. QByteArray fileBuff = file.readAll();
  9. file.close();

  10. QUrl url("https://aip.baidubce.com/rest/2.0/ocr/v1/general");
  11. QUrlQuery urlQuery;
  12. urlQuery.addQueryItem("access_token", "XXX_XXXXXXXX");
  13. url.setQuery(urlQuery);
  14. QNetworkRequest request;
  15. request.setRawHeader("Content-Type", "application/x-www-form-urlencoded");
  16. request.setUrl(url);
  17. QByteArray postArray;
  18. postArray.append("image=");
  19. postArray.append(fileBuff.toPercentEncoding());//按照要求UrlEncode

  20. reply = qnam.post(request, postArray);
  21. //...
  22. }
复制代码

服务器返回image transcode error,貌似postArray.append(fileBuff.toPercentEncoding());
python代码 img = base64.b64encode(f.read())就搞定d


回复

使用道具 举报

尚未签到

2018-5-3 23:46:21 显示全部楼层
qt有自己的base64函数哦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了