# -*- coding: utf-8 -*-import httplibimport tracebackimport urllibHTTP_OK = 200HTTP_AUTHORIZATION_ERROR = 401class Client:domain = 'api.wmcloud.com'port = 443token = ''httpClient = None#设置因网络连接,重连的次数reconnectTimes=3def __init__( self ):self.httpClient = httplib.HTTPSConnection(self.domain, self.port, timeout=60)def __del__( self ):if self.httpClient is not None:self.httpClient.close()def encodepath(self, path):#转换参数的编码start=0n=len(path)re=''i=path.find('=',start)if(i==-1):return pathwhile i!=-1 :re+=path[start:i+1]start=i+1i=path.find('&',start)if(i>=0):for j in range(start,i):if(path[j]>'~'):re+=urllib.quote(path[j])else:re+=path[j]re+='&'start=i+1else:for j in range(start,n):if(path[j]>'~'):re+=urllib.quote(path[j])else:re+=path[j]start=ni=path.find('=',start)return redef init(self, token):self.token=tokendef getData(self, path):result = Nonepath='/data/v1'+pathpath=self.encodepath(path)print pathfor i in range(self.reconnectTimes):try:#set http header hereself.httpClient.request('GET', path, headers = {"Authorization": "Bearer " + self.token})#make requestresponse = self.httpClient.getresponse()#read resultif response.status == HTTP_OK:#parse json into python primitive objectresult = response.read()else:result = response.read()if(path.find('.csv?')==-1):result=result.decode('utf-8').encode('GB18030')return response.status, resultexcept Exception, e:#网络连接失败,关闭当前连接,再重新建立print iif self.httpClient is not None:self.httpClient.close()self.httpClient = httplib.HTTPSConnection(self.domain, self.port, timeout=60)return -1,'cannot connect '+str(self.reconnectTimes)+' times'
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。