阿里云
阿里云飞天战略营全新发布
发表主题 回复主题
  • 3387阅读
  • 1回复

CDNAPIpython版接口问题

级别: 新人
发帖
2
云币
12
— 本帖被 cloud_service 从 售后支持 移动到本区(2015-07-23) —
使用了几天CDN API接口下载日志,每次手动执行脚本,都是成功的,但用系统任务计划执行,都是失败的, Yy;BJ_  
原因: ,b:~Vpb1I  
日志中记录的执行报错信息:decode() argument 1 must be string, not None i1K$~  
@)wsHW%cjz  
z0%tBgqY(  
这个信息是在接口脚本:aliyun/api/base.py引发的 `lrNH]B  
引发的相关代码: FV{XPr%   
x<7?  
def percent_encode(encodeStr): 7EVB|gTp  
    encodeStr = str(encodeStr) _h 6c[*  
    res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '') Xpt9$=d  
    res = res.replace('+', '%20') 7* [  
    res = res.replace('*', '%2A') j<R&?*  
    res = res.replace('%7E', '~') 57q?:M=^  
    return res IyM:9=}5  
Xkk 8#Y":  
Zy.3yQM9i  
具体是出在sys.stdin.encoding x&r f]R  
备注: Hv2[=elc  
终端的输入编码:sys.stdin.encoding终端的输出编码:sys.stdout.encoding :i|]iXEI"  
h lSav?V_  
d\zUtcJwC  
用任务计划动执行的时候,就不涉及终端输入了,结果就报错了 [KCR@__  
-<sW`HpD'  
4P"XT  
我把sys.stdin.encoding去掉了,系统crontab执行就正常了 C XNYWx  
修改后的代码: 7#SfuZ0@  
9 Q*:II  
def percent_encode(encodeStr): CNhLp#  
    encodeStr = str(encodeStr) KT7R0v  
   res = urllib.quote(encodeStr.encode('utf8'), '') .&`apQD}  
    #res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '') |>1#)cONW  
    res = res.replace('+', '%20') .8GXpt^U(  
    res = res.replace('*', '%2A') eNO[ikm  
    res = res.replace('%7E', '~') 5X9Lh_p  
    return res OmK4 \_.  
P]OUzI,  
o,S(;6pDJ  
$~VIx% h  
级别: 新人
发帖
1
云币
1
只看该作者 沙发  发表于: 2017-12-04
ReCDNAPIpython版接口问题
这个问题困扰了我一个月了 a*:GCGe  
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: 87 - 86 = ?
上一个 下一个