阿里云
云栖社区2017年度内容特辑
发表主题 回复主题
  • 2975阅读
  • 1回复

CDNAPIpython版接口问题

级别: 新人
发帖
2
云币
12
— 本帖被 cloud_service 从 售后支持 移动到本区(2015-07-23) —
使用了几天CDN API接口下载日志,每次手动执行脚本,都是成功的,但用系统任务计划执行,都是失败的, K).X=2gjY  
原因: 00U8<~u  
日志中记录的执行报错信息:decode() argument 1 must be string, not None T=VVK6Lc:  
J4j?rLR3p  
KK(x)(  
这个信息是在接口脚本:aliyun/api/base.py引发的 JQ+4 SomK  
引发的相关代码: x?:WR*5w  
\b.2f+;3  
def percent_encode(encodeStr): LAw X9q`  
    encodeStr = str(encodeStr) k :7UU4M 5  
    res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '') $msT,$NJ  
    res = res.replace('+', '%20') b$PNZC8f  
    res = res.replace('*', '%2A') ;Zj Qy,H%  
    res = res.replace('%7E', '~') |1g2\5Re  
    return res @WhcY*R2  
)K@ 20Q+0K  
/Ia=/Jj7N  
具体是出在sys.stdin.encoding &wNN| fH  
备注: Cd7 j G  
终端的输入编码:sys.stdin.encoding终端的输出编码:sys.stdout.encoding '9auQ(2  
.Yha(5(  
PwF}yx kI  
用任务计划动执行的时候,就不涉及终端输入了,结果就报错了 t=XiSj\n  
FX}<F0([?  
8k_,Hni  
我把sys.stdin.encoding去掉了,系统crontab执行就正常了 c1|o^eZ  
修改后的代码: L2{tof  
xg'0YZ\t  
def percent_encode(encodeStr): H1 \~T  
    encodeStr = str(encodeStr) of+$TKQNpN  
   res = urllib.quote(encodeStr.encode('utf8'), '') 5? c4aAn  
    #res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '') {:6VJ0s\  
    res = res.replace('+', '%20') (y~da~  
    res = res.replace('*', '%2A') ]YevO(  
    res = res.replace('%7E', '~') YI%7#L7C  
    return res eDaVoc3  
'QCvN b6  
ocdXzk`  
aMv  
级别: 新人
发帖
1
云币
1
只看该作者 沙发  发表于: 2017-12-04
ReCDNAPIpython版接口问题
这个问题困扰了我一个月了 -MB ,]m  
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
验证问题: ECS是阿里云提供的什么服务? 正确答案:云服务器
上一个 下一个