阿里云
订阅广场
发表主题 回复主题
  • 2936阅读
  • 1回复

CDNAPIpython版接口问题

级别: 新人
发帖
2
云币
12
— 本帖被 cloud_service 从 售后支持 移动到本区(2015-07-23) —
使用了几天CDN API接口下载日志,每次手动执行脚本,都是成功的,但用系统任务计划执行,都是失败的, r4u ,I<ZbH  
原因: ozsd6&z5l  
日志中记录的执行报错信息:decode() argument 1 must be string, not None `}t5`:#k  
@wD#+Oz  
" :e <a?  
这个信息是在接口脚本:aliyun/api/base.py引发的 JQ ?8yl  
引发的相关代码: F$i50s  
<,O| fY%  
def percent_encode(encodeStr): Ew]&~:$Ki  
    encodeStr = str(encodeStr) alRz@N  
    res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '') R[j'<gd.  
    res = res.replace('+', '%20') rk %pA-P2  
    res = res.replace('*', '%2A') ,MHK|8!  
    res = res.replace('%7E', '~') [6K[P3UZx  
    return res }qGd*k0F0  
6a9:P@tY  
!*DY dqQ/  
具体是出在sys.stdin.encoding .HTRvE`X  
备注: r+Sv(KS4i^  
终端的输入编码:sys.stdin.encoding终端的输出编码:sys.stdout.encoding 7lYf+&JZ  
d?5oJ'JU  
'ym Mu}q  
用任务计划动执行的时候,就不涉及终端输入了,结果就报错了 V9KRA 1  
??Urm[Y.Z  
0f_`;{  
我把sys.stdin.encoding去掉了,系统crontab执行就正常了 8fQfu'LyjY  
修改后的代码: $2]>{g  
guCCu2OTA%  
def percent_encode(encodeStr): Z9MU%*N  
    encodeStr = str(encodeStr) bWp)'mx5u  
   res = urllib.quote(encodeStr.encode('utf8'), '') C5KUIOg  
    #res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '') #3>jgluM'  
    res = res.replace('+', '%20') d8Cd4qIXX  
    res = res.replace('*', '%2A') y]!#$C /  
    res = res.replace('%7E', '~') `)8S Ix  
    return res HOPl0fY$L  
) C\/(  
N.|zz)y  
lwG)&qyVd  
级别: 新人
发帖
1
云币
1
只看该作者 沙发  发表于: 2017-12-04
ReCDNAPIpython版接口问题
这个问题困扰了我一个月了 SEWdhthP  
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: ECS是阿里云提供的什么服务? 正确答案:云服务器
上一个 下一个