阿里云
1024开发者盛宴之Java专家问答专场
发表主题 回复主题
  • 4517阅读
  • 1回复

CDNAPIpython版接口问题

级别: 新人
发帖
2
云币
12
— 本帖被 cloud_service 从 售后支持 移动到本区(2015-07-23) —
使用了几天CDN API接口下载日志,每次手动执行脚本,都是成功的,但用系统任务计划执行,都是失败的, lA{JpH_Y8s  
原因: `T\_Wje(  
日志中记录的执行报错信息:decode() argument 1 must be string, not None 'm=TBNQTS  
`cQAO1-5  
C5Vlqc;  
这个信息是在接口脚本:aliyun/api/base.py引发的 FEH+ PKSc  
引发的相关代码: [][ze2+b  
shgZru  
def percent_encode(encodeStr): < ]"Uy p  
    encodeStr = str(encodeStr) bL`># M_^  
    res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '') ARUzEo gcf  
    res = res.replace('+', '%20') R$h B9BK  
    res = res.replace('*', '%2A') %i6/= 'u  
    res = res.replace('%7E', '~') 'yo-`nNFD  
    return res S awf]/  
s%QCdU ]  
G %A!yV  
具体是出在sys.stdin.encoding D\^mh{q(  
备注: .],:pL9d  
终端的输入编码:sys.stdin.encoding终端的输出编码:sys.stdout.encoding 4|&_i)S-Y  
DHg)]FQ/  
8e5imei  
用任务计划动执行的时候,就不涉及终端输入了,结果就报错了 w~C\5 i  
]GT+UX  
%Rt 5$+dNT  
我把sys.stdin.encoding去掉了,系统crontab执行就正常了 XXw>h4hl  
修改后的代码: x4i&;SP0  
:q c?FQ ;  
def percent_encode(encodeStr): 2KlVj]!7  
    encodeStr = str(encodeStr) An_3DrUFV_  
   res = urllib.quote(encodeStr.encode('utf8'), '') C#V_Gb  
    #res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '') 4T6: C?V  
    res = res.replace('+', '%20') Mp QsM-iW  
    res = res.replace('*', '%2A') % *ng *  
    res = res.replace('%7E', '~') Wf3{z D~  
    return res K]1| #`n  
ev #/v:$?  
I<Cm$8O?  
? o&goiM  
级别: 新人
发帖
1
云币
1
只看该作者 沙发  发表于: 2017-12-04
ReCDNAPIpython版接口问题
这个问题困扰了我一个月了 fRxn,HyV  
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
批量上传需要先选择文件,再选择上传
 
验证问题: 34 - 25 = ?
上一个 下一个