百度EasyDL相关API调用的尝试(以及application/json和application/x-www-form-urlencoded发送时的区别)
首先使用python尝试进行了API调用
调用流程:
1.获取AccessToken:
向授权服务地址https://aip.baidubce.com/oauth/2.0/token
发送请求(推荐使用POST),并在URL中带上以下参数:
- grant_type: 必须参数,固定为
client_credentials
; - client_id: 必须参数,应用的
API Key
; - client_secret: 必须参数,应用的
Secret Key
;
'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【百度云应用的AK】&client_secret=【百度云应用的SK】'
2.相应API调用,代码参数设置,
将图像数据base64编码后通过POST发送
3.得到反馈的json文件进行处理
我在本地通过python尝试了一下调用最终得到结果如下
基于App inventor开发APP进行调用
这一部分就是让人头大的地方了,由于app inventor 时拼图编程,导致很多代码块内部逻辑不是很清楚,所以也是踩了很多坑。
好在最终也得到了想要的结果:
首先由于不同的api调用时需要post的表单的数据类型时不同的,常见的有application/json和application/x-www-form-urlencoded。
两者的编码方式是有着一些区别的
发送application/x-www-form-urlencoded类型的设计
我这里选择调用的是百度智能云的货币识别以及红酒识别的API
UI设计
逻辑设计
通过观察返回json文件格式,最终采取了下面的处理方式
最后经过测试结果如下
发送application/json类型的设计
这里和上面的主要区别就是POST的表单数据的类型不同,所以就需要我们把要POST的数据处理好。
其它地方就大同小异啦。
在做这个作业的过程中可谓历尽艰难,但是还是让我收获颇丰。
参考文献
POST提交数据区别
API调用流程