阿里云
发表主题 回复主题
  • 3960阅读
  • 1回复

CDNAPIpython版接口问题

级别: 新人
发帖
2
云币
12
— 本帖被 cloud_service 从 售后支持 移动到本区(2015-07-23) —
使用了几天CDN API接口下载日志,每次手动执行脚本,都是成功的,但用系统任务计划执行,都是失败的, Trv}YT.  
原因: ?'MkaG0g  
日志中记录的执行报错信息:decode() argument 1 must be string, not None xpR`fq  
t{]Ew4Y4%O  
m^3x%ENZ  
这个信息是在接口脚本:aliyun/api/base.py引发的 !<p,G`r  
引发的相关代码: /4an@5.\C  
JQ1MuE'  
def percent_encode(encodeStr): 7S a9  
    encodeStr = str(encodeStr) Njc@5*rJ &  
    res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '') BPO5=]W 7  
    res = res.replace('+', '%20') !?P8[K  
    res = res.replace('*', '%2A') |4df)  
    res = res.replace('%7E', '~') d0:LJ'<Q  
    return res $tmdE )"&  
cRT'?w`}  
B6  0  
具体是出在sys.stdin.encoding <fUo@]Lv  
备注: ,s[%,ep`  
终端的输入编码:sys.stdin.encoding终端的输出编码:sys.stdout.encoding F)^0R%{C  
CP7dn/  
S1QMS  
用任务计划动执行的时候,就不涉及终端输入了,结果就报错了 6("_}9ZOc  
n28JWkK8  
I"Zp^j  
我把sys.stdin.encoding去掉了,系统crontab执行就正常了 h4;kjr}h}  
修改后的代码: I  C  
*#=Ijr~  
def percent_encode(encodeStr): W==~ 9  
    encodeStr = str(encodeStr) T\l`Y-vu  
   res = urllib.quote(encodeStr.encode('utf8'), '') bZ`v1d (r  
    #res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '') Hyb(.hlZh  
    res = res.replace('+', '%20') &;@L] o  
    res = res.replace('*', '%2A') cH5i420;aO  
    res = res.replace('%7E', '~') N~)-\T:ap  
    return res bzi"7%c  
& zDuh[j}  
(y9KO56.V&  
dtTn]}J  
级别: 新人
发帖
1
云币
1
只看该作者 沙发  发表于: 2017-12-04
ReCDNAPIpython版接口问题
这个问题困扰了我一个月了 pCKP{c=6Q  
发表主题 回复主题
« 返回列表上一主题下一主题

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