本文整理汇总了Python中pycurl.RESPONSE_CODE属性的典型用法代码示例。如果您正苦于以下问题:Python pycurl.RESPONSE_CODE属性的具体用法?Python pycurl.RESPONSE_CODE怎么用?Python pycurl.RESPONSE_CODE使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类pycurl
的用法示例。
在下文中一共展示了pycurl.RESPONSE_CODE属性的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: url_check
# 需要导入模块: import pycurl [as 别名]
# 或者: from pycurl import RESPONSE_CODE [as 别名]
def url_check(self, url):
'''下载地址检查'''
url_info = {}
proto = urlparse.urlparse(url)[0]
if proto not in VALIDPROTOCOL:
print 'Valid protocol should be http or ftp, but % s found < %s >!' % (proto, url)
else:
ss = StringIO()
curl = pycurl.Curl()
curl.setopt(pycurl.FOLLOWLOCATION, 1)
curl.setopt(pycurl.MAXREDIRS, 5)
curl.setopt(pycurl.CONNECTTIMEOUT, 30)
curl.setopt(pycurl.TIMEOUT, 300)
curl.setopt(pycurl.NOSIGNAL, 1)
curl.setopt(pycurl.NOPROGRESS, 1)
curl.setopt(pycurl.NOBODY, 1)
curl.setopt(pycurl.HEADERFUNCTION, ss.write)
curl.setopt(pycurl.URL, url)
try:
curl.perform()
except:
pass
if curl.errstr() == '' and curl.getinfo(pycurl.RESPONSE_CODE) in STATUS_OK:
url_info['url'] = curl.getinfo(pycurl.EFFECTIVE_URL)
url_info['file'] = os.path.split(url_info['url'])[1]
url_info['size'] = int(
curl.getinfo(pycurl.CONTENT_LENGTH_DOWNLOAD))
url_info['partible'] = (ss.getvalue().find('Accept - Ranges') != -1)
return url_info
示例2: process_curl
# 需要导入模块: import pycurl [as 别名]
# 或者: from pycurl import RESPONSE_CODE [as 别名]
def process_curl(self, curl):
'''
下载结果处理
'''
self.mcurl.remove_handle(curl)
c = curl.connection
c.errno = curl.errno
c.errmsg = curl.errmsg
self.working_connections.remove(c)
if c.errno == pycurl.E_OK:
c.code = curl.getinfo(pycurl.RESPONSE_CODE)
d = self.process_ok(c)
else:
d = self.process_error(c)
return d
示例3: urlopen
# 需要导入模块: import pycurl [as 别名]
# 或者: from pycurl import RESPONSE_CODE [as 别名]
def urlopen(req, close=True):
if isinstance(req, str):
req = Request(req)
response = StringIO2()
if DEBUG:
req.c.setopt(req.c.VERBOSE, 1)
req.c.setopt(req.c.WRITEFUNCTION, response.write)
if req.headers:
req.c.setopt(req.c.HTTPHEADER, req._make_headers())
req.c.perform()
response.seek(-1)
#print repr(response.getvalue())
response.code = req.c.getinfo(pycurl.RESPONSE_CODE)
response.code = int(response.code)
try:
response.msg = BaseHTTPRequestHandler.responses[response.code][0]
except:
response.msg = "No Reason"
response.content_type = req.c.getinfo(pycurl.CONTENT_TYPE)
if close:
req.c.close()
return response
示例4: info
# 需要导入模块: import pycurl [as 别名]
# 或者: from pycurl import RESPONSE_CODE [as 别名]
def info(self):
"Return a dictionary with all info on the last response."
m = {}
m['effective-url'] = self.handle.getinfo(pycurl.EFFECTIVE_URL)
m['http-code'] = self.handle.getinfo(pycurl.HTTP_CODE)
m['total-time'] = self.handle.getinfo(pycurl.TOTAL_TIME)
m['namelookup-time'] = self.handle.getinfo(pycurl.NAMELOOKUP_TIME)
m['connect-time'] = self.handle.getinfo(pycurl.CONNECT_TIME)
m['pretransfer-time'] = self.handle.getinfo(pycurl.PRETRANSFER_TIME)
m['redirect-time'] = self.handle.getinfo(pycurl.REDIRECT_TIME)
m['redirect-count'] = self.handle.getinfo(pycurl.REDIRECT_COUNT)
m['size-upload'] = self.handle.getinfo(pycurl.SIZE_UPLOAD)
m['size-download'] = self.handle.getinfo(pycurl.SIZE_DOWNLOAD)
m['speed-upload'] = self.handle.getinfo(pycurl.SPEED_UPLOAD)
m['header-size'] = self.handle.getinfo(pycurl.HEADER_SIZE)
m['request-size'] = self.handle.getinfo(pycurl.REQUEST_SIZE)
m['content-length-download'] = self.handle.getinfo(pycurl.CONTENT_LENGTH_DOWNLOAD)
m['content-length-upload'] = self.handle.getinfo(pycurl.CONTENT_LENGTH_UPLOAD)
m['content-type'] = self.handle.getinfo(pycurl.CONTENT_TYPE)
m['response-code'] = self.handle.getinfo(pycurl.RESPONSE_CODE)
m['speed-download'] = self.handle.getinfo(pycurl.SPEED_DOWNLOAD)
m['ssl-verifyresult'] = self.handle.getinfo(pycurl.SSL_VERIFYRESULT)
m['filetime'] = self.handle.getinfo(pycurl.INFO_FILETIME)
m['starttransfer-time'] = self.handle.getinfo(pycurl.STARTTRANSFER_TIME)
m['redirect-time'] = self.handle.getinfo(pycurl.REDIRECT_TIME)
m['redirect-count'] = self.handle.getinfo(pycurl.REDIRECT_COUNT)
m['http-connectcode'] = self.handle.getinfo(pycurl.HTTP_CONNECTCODE)
m['httpauth-avail'] = self.handle.getinfo(pycurl.HTTPAUTH_AVAIL)
m['proxyauth-avail'] = self.handle.getinfo(pycurl.PROXYAUTH_AVAIL)
m['os-errno'] = self.handle.getinfo(pycurl.OS_ERRNO)
m['num-connects'] = self.handle.getinfo(pycurl.NUM_CONNECTS)
m['ssl-engines'] = self.handle.getinfo(pycurl.SSL_ENGINES)
m['cookielist'] = self.handle.getinfo(pycurl.INFO_COOKIELIST)
m['lastsocket'] = self.handle.getinfo(pycurl.LASTSOCKET)
m['ftp-entry-path'] = self.handle.getinfo(pycurl.FTP_ENTRY_PATH)
return m
示例5: curl_result
# 需要导入模块: import pycurl [as 别名]
# 或者: from pycurl import RESPONSE_CODE [as 别名]
def curl_result(c):
effective_url = c.getinfo(pycurl.EFFECTIVE_URL)
primary_ip = c.getinfo(pycurl.PRIMARY_IP)
primary_port = c.getinfo(pycurl.PRIMARY_PORT)
local_ip = c.getinfo(pycurl.LOCAL_IP)
local_port = c.getinfo(pycurl.LOCAL_PORT)
speed_download = c.getinfo(pycurl.SPEED_DOWNLOAD)
size_download = c.getinfo(pycurl.SIZE_DOWNLOAD)
redirect_time = c.getinfo(pycurl.REDIRECT_TIME)
redirect_count = c.getinfo(pycurl.REDIRECT_COUNT)
redirect_url = c.getinfo(pycurl.REDIRECT_URL)
http_code = c.getinfo(pycurl.HTTP_CODE)
response_code = c.getinfo(pycurl.RESPONSE_CODE)
total_time = c.getinfo(pycurl.TOTAL_TIME)
content_type = c.getinfo(pycurl.CONTENT_TYPE)
namelookup_time = c.getinfo(pycurl.NAMELOOKUP_TIME)
info_filetime = c.getinfo(pycurl.INFO_FILETIME)
http_connectcode = c.getinfo(pycurl.HTTP_CONNECTCODE)
starttransfer_time = c.getinfo(pycurl.STARTTRANSFER_TIME)
pretransfer_time = c.getinfo(pycurl.PRETRANSFER_TIME)
header_size = c.getinfo(pycurl.HEADER_SIZE)
request_size = c.getinfo(pycurl.REQUEST_SIZE)
ssl_verifyresult = c.getinfo(pycurl.SSL_VERIFYRESULT)
num_connects = c.getinfo(pycurl.NUM_CONNECTS)
return {
'effective_url': effective_url,
'primary_ip': primary_ip,
'primary_port': primary_port,
'local_ip': local_ip,
'local_port': local_port,
'speed_download': speed_download,
'size_download': size_download,
'redirect_time': redirect_time,
'redirect_count': redirect_count,
'redirect_url': redirect_url,
'http_code': http_code,
'response_code': response_code,
'total_time': total_time,
'content_type': content_type,
'namelookup_time': namelookup_time,
'info_filetime': info_filetime,
'http_connectcode': http_connectcode,
'starttransfer_time': starttransfer_time,
'pretransfer_time': pretransfer_time,
'header_size': header_size,
'request_size': request_size,
'ssl_verifyresult': ssl_verifyresult,
'num_connects': num_connects,
# 'proxy_ssl_verifyresult': proxy_ssl_verifyresult,
# 'app_connecttime': app_connecttime,
}
示例6: xcoinApiCall
# 需要导入模块: import pycurl [as 别名]
# 或者: from pycurl import RESPONSE_CODE [as 别名]
def xcoinApiCall(self, endpoint, rg_params):
# 1. Api-Sign and Api-Nonce information generation.
# 2. Request related information from the Bithumb API server.
#
# - nonce: it is an arbitrary number that may only be used once.
# - api_sign: API signature information created in various combinations values.
endpoint_item_array = {
"endpoint" : endpoint
}
uri_array = dict(endpoint_item_array, **rg_params) # Concatenate the two arrays.
str_data = urllib.parse.urlencode(uri_array)
nonce = self.usecTime()
data = endpoint + chr(0) + str_data + chr(0) + nonce
utf8_data = data.encode('utf-8')
key = self.api_secret
utf8_key = key.encode('utf-8')
h = hmac.new(bytes(utf8_key), utf8_data, hashlib.sha512)
hex_output = h.hexdigest()
utf8_hex_output = hex_output.encode('utf-8')
api_sign = base64.b64encode(utf8_hex_output)
utf8_api_sign = api_sign.decode('utf-8')
curl_handle = pycurl.Curl()
curl_handle.setopt(pycurl.POST, 1)
#curl_handle.setopt(pycurl.VERBOSE, 1) # vervose mode :: 1 => True, 0 => False
curl_handle.setopt(pycurl.POSTFIELDS, str_data)
url = self.api_url + endpoint
curl_handle.setopt(curl_handle.URL, url)
curl_handle.setopt(curl_handle.HTTPHEADER, ['Api-Key: ' + self.api_key, 'Api-Sign: ' + utf8_api_sign, 'Api-Nonce: ' + nonce])
curl_handle.setopt(curl_handle.WRITEFUNCTION, self.body_callback)
curl_handle.perform()
#response_code = curl_handle.getinfo(pycurl.RESPONSE_CODE) # Get http response status code.
curl_handle.close()
return (json.loads(self.contents))
示例7: request
# 需要导入模块: import pycurl [as 别名]
# 或者: from pycurl import RESPONSE_CODE [as 别名]
def request(self, path="/", header=None, ssl=False, timeout=None):
if timeout is None:
timeout = self.timeout
buf = StringIO()
c = pycurl.Curl()
if header:
slist = []
for key, value in header.iteritems():
slist.append(key+": "+value)
c.setopt(pycurl.HTTPHEADER, slist)
c.setopt(pycurl.HEADERFUNCTION, self.header_function)
c.setopt(pycurl.FOLLOWLOCATION, True)
c.setopt(pycurl.WRITEDATA, buf)
c.setopt(pycurl.TIMEOUT, timeout)
c.setopt(pycurl.ENCODING, 'identity')
c.setopt(pycurl.NOSIGNAL, 1)
if ssl:
if self.port is None:
self.port = 443
c.setopt(pycurl.URL, "https://"+self.host+":"+str(self.port)+path)
c.setopt(pycurl.SSL_VERIFYPEER, 1)
c.setopt(pycurl.SSL_VERIFYHOST, 2)
else:
if self.port is None:
self.port = 80
c.setopt(pycurl.URL,"http://"+self.host + ":" + str(self.port) + path)
c.perform()
self.status = c.getinfo(pycurl.RESPONSE_CODE)
c.close()
encoding = None
if 'content-type' in self.headers:
content_type = self.headers['content-type'].lower()
match = re.search('charset=(\S+)', content_type)
if match:
encoding = match.group(1)
if encoding is None:
# Default encoding for HTML is iso-8859-1.
# Other content types may have different default encoding,
# or in case of binary data, may have no encoding at all.
encoding = 'iso-8859-1'
self.body = buf.getvalue().decode(encoding)