调用人像分割接口出现不能获取token情况
小橘灯GG 发布于2019-11 浏览:2175 回复:3
0
收藏

程序重启后,第一次调用接口,如果接口出错(网咯不通),则之后的所有调用,sdk不会去获取access_token,导致出现IAM Certification failed,
通过跟踪发现第一次出错的时候,程序会将isBceKey.set(true);


, 后面的请求再来的时候重新获取token的逻辑会跳过,导致后面的调用都没有token

重现可以第一次调用的时候,可以先关闭网卡,人为的使第一次调用出错。

收藏
点赞
0
个赞
共3条回复 最后由用户已被禁言回复于2019-11
#4用户已被禁言回复于2019-11
#3 小橘灯GG回复
改成了每次new,但是我的程序设计跟百度SDK,有什么关系呢? 每次new带来的问题是一次调用每次都是2次网络交互,增加成本。
展开

您的程序肯定和SDK没关系了。每次new只是让您测试一下哦。不要误解了哦~。

确保给的参数无误。尤其是SECRETKEY 确保不要带空格

IAM Certification failed 基本大多数都是复制3个参数值 尤其是最后一个带空格导致。错误信息的一个解决方案

https://ai.baidu.com/forum/topic/show/496572  如果不此问题导致 则可以忽略 

单例加载 假设会返回IAM Certification failed 正常应该是json格式的字符串。可以根据errorcode errormsg 判断并对单例加载SDK进行重新加载一次。

当单例加载失败。去调用接口返回的错误自己也可以优先处理一下的。厂商也有可能某些细节没考虑好。所以开发者们可以针对这样的情况进行自己优先处理一下。

想清楚为什么获取token失败 会把isBceKey 设置为true 这个确实就是github 提交issue 看官方技术如何回复了。或者提交工单咨询一下。

 

1
#3小橘灯GG回复于2019-11
#2 用户已被禁言回复
获取access_token 是APPID APIKEY SECRETKEY三个值。 我感觉如果你是单例加载 参数错误 或你说的那种情况 就会导致了。 如果是每次都是new 应该不会的。
展开

改成了每次new,但是我的程序设计跟百度SDK,有什么关系呢?

每次new带来的问题是一次调用每次都是2次网络交互,增加成本。

0
#2用户已被禁言回复于2019-11

获取access_token 是APPID APIKEY SECRETKEY三个值。

我感觉如果你是单例加载 参数错误 或你说的那种情况 就会导致了。

如果是每次都是new 应该不会的。

1
TOP
切换版块