Closed liyongxiong closed 10 years ago
我这里测试可用啊,是不是网络出现了问题?
[root@vm bypy]# ping pcs.baidu.com PING pcs.n.shifen.com (202.108.23.100) 56(84) bytes of data. 64 bytes from 202.108.23.100: icmp_seq=1 ttl=52 time=2.12 ms 64 bytes from 202.108.23.100: icmp_seq=2 ttl=52 time=2.26 ms 64 bytes from 202.108.23.100: icmp_seq=3 ttl=52 time=1.99 ms 64 bytes from 202.108.23.100: icmp_seq=4 ttl=52 time=2.08 ms ^C --- pcs.n.shifen.com ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3536ms rtt min/avg/max/mdev = 1.992/2.117/2.268/0.104 ms [root@vm bypy]# curl https://pcs.baidu.com/rest/2.0/pcs/quota {"error_code":3,"error_msg":"Unsupported open api","request_id":1241839942} [root@vm bypy]#
我故意毁坏access_token(修改了几个字符)导致access_token失效,它又能正常的refresh回来。
[root@vm bypy]# python2.7 bypy.py info -d Token file: '/root/.bypy.json' Hash Cache file: '/root/.bypy.pickle' App root path at Baidu Yun '/apps/test-my-app' sys.stdin.encoding = UTF-8 sys.stdout.encoding = UTF-8
这个感觉有点怪异。。还是不行?
找到原因了,我替换了我自己的app,但是API服务列表里没开通PCI API。。。寒,打扰了。供日后碰到这个问题的同学参考。
http://developer.baidu.com/console#manage/apilist!appid=xxxx(xxx替换为自己的appid)
顺便的,我是修改了源代码才发现问题的。 在__request_work函数里,失败的情况下只输出了r.status_code的调式信息,输出r.text那句默认被注释了,我打开了才发现提示信息是这样的:{"error_code":31024,"error_msg":"app id is empty","request_id":xxxx}
哦,原来如此。 关掉那个r.text是因为下载大文件的时候如果打开-d开关,程序会卡死。
可以考虑改为当http code不是200的时候才print
__dump_exception()里有详细的print,为什么没出来呢?
这种情况不是异常,__dump_exception()在异常处理里
不只是异常才会调用的,只要返回码不是2xx,正常情况下都会调用的。
注:用xxx替换了部分信息。 我使用了自己的apikey和secretkey
[root@vm bypy]# python2.7 bypy.py info -d Token file: '/root/.bypy.json' Hash Cache file: '/root/.bypy.pickle' App root path at Baidu Yun '/apps/xxxx' sys.stdin.encoding = UTF-8 sys.stdout.encoding = UTF-8