Here are the examples of the python api request.get taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
2 Examples
0
Example 1
Project: QGIS-CKAN-Browser Source File: ckanconnector.py
def download_resource(self, url, resource_format, dest_file, delete):
try:
# if resource_format is not None:
# if resource_format.lower() == 'georss':
# dest_file += '.xml'
if delete is True:
os.remove(dest_file)
#urls might have line breaks
url = self.util.remove_newline(url)
response = requests.get(
url
, headers=self.ua_chrome
, verify=False
, stream=True
, proxies=self.settings.get_proxies()[1]
, timeout=self.settings.request_timeout
)
if not response.ok:
return False, self.util.tr(u'cc_download_error').format(response.reason), None
# TODO remove after testing
# doesn't work headers is object of type 'request.structures.CaseInsensitiveDict'
# self.util.msg_log(u'{0}'.format(json.dumps(response.headers, indent=2, sort_keys=True)))
for k, v in response.headers.iteritems():
self.util.msg_log(u"['{0}']: \t{1}".format(k, v))
# Content-Disposition:
# http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html
# http://www.iana.org/assignments/cont-disp/cont-disp.xhtml
file_name_from_service = self.__file_name_from_service(
url
, response.headers.get('content-disposition')
, response.headers.get('content-type')
)
self.util.msg_log(u'file name from service: {0}'.format(file_name_from_service))
if file_name_from_service:
# set new dest_file name
dest_file = os.path.join(os.path.dirname(dest_file), file_name_from_service)
self.util.msg_log(u'dest_file: {0}'.format(dest_file))
# hack for WFS/WM(T)S Services, that don't specify the format as wms, wmts or wfs
url_low = url.lower()
if 'wfs' in url_low and 'getcapabilities' in url_low and False is dest_file.endswith('.wfs'):
if string.find(dest_file, '?') > -1: dest_file = dest_file[:string.find(dest_file, '?')]
dest_file += '.wfs'
if 'wmts' in url_low and 'getcapabilities' in url_low and False is dest_file.endswith('.wmts'):
if string.find(dest_file, '?') > -1: dest_file = dest_file[:string.find(dest_file, '?')]
dest_file += '.wmts'
# we use extension wmts for wms too
if 'wms' in url_low and 'getcapabilities' in url_low and False is dest_file.endswith('.wmts'):
if string.find(dest_file, '?') > -1: dest_file = dest_file[:string.find(dest_file, '?')]
dest_file += '.wmts'
self.util.msg_log(u'dest_file: {0}'.format(dest_file))
# if file name has been set from service, set again after above changes for wfs/wm(t)s
if file_name_from_service:
# set return value to full path
file_name_from_service = dest_file
#chunk_size = 1024
chunk_size = None
#http://docs.python-requests.org/en/latest/user/advanced/#chunk-encoded-requests
if self.__is_chunked(response.headers.get('transfer-encoding')):
self.util.msg_log('response is chunked')
chunk_size = None
with open(dest_file, 'wb') as handle:
for chunk in response.iter_content(chunk_size):
if chunk:
handle.write(chunk)
return True, '', file_name_from_service
except requests.exceptions.ConnectTimeout as cte:
#self.util.msg_log(u'{0}\n{1}\n\n\n{2}'.format(cte, dir(cte), cte.message))
return False, self.util.tr(u'cc_connection_timeout').format(cte.message)
except IOError, e:
self.util.msg_log("Can't retrieve {0} to {1}: {2}".format(url, dest_file, e))
return False, self.util.tr(u'cc_download_error').format(e.strerror), None
except NameError as ne:
self.util.msg_log(u'{0}'.format(ne))
return False, ne.message, None
except:
return False, self.util.tr(u'cc_download_error').format(sys.exc_info()[0]), None
0
Example 2
def __get_data(self, api, action):
url = u'{0}{1}'.format(api, action)
self.util.msg_log(u'api request: {0}'.format(url))
#pyperclip.copy(url)
# url = u'{0}{1}'.format(self.api, unicodedata.normalize('NFKD', action))
try:
url = self.util.remove_newline(url)
response = requests.get(
url
, headers=self.ua_chrome
, verify=False
, proxies=self.settings.get_proxies()[1]
, timeout=self.settings.request_timeout
)
except requests.exceptions.ConnectTimeout as cte:
#self.util.msg_log(u'{0}\n{1}\n\n\n{2}'.format(cte, dir(cte), cte.message))
return False, self.util.tr(u'cc_connection_timeout').format(cte.message)
except requests.exceptions.ConnectionError as ce:
self.util.msg_log(u'ConnectionError:{0}'.format(ce))
return False, ce
except UnicodeEncodeError as uee:
self.util.msg_log(u'msg:{0} enc:{1} args:{2} reason:{3}'.format(uee.message, uee.encoding, uee.args, uee.reason))
return False, self.util.tr(u'cc_api_not_accessible')
except:
self.util.msg_log(u'Unerwarteter Fehler beim Request: {0}'.format(sys.exc_info()[0]))
return False, self.util.tr(u'cc_api_not_accessible')
if response.status_code != 200:
return False, self.util.tr(u'cc_server_fault')
try:
result = json.loads(response.text)
except TypeError as te:
self.util.msg_log(u'Unerwarteter Fehler: {0}'.format(te.message))
return False, self.util.tr(u'cc_api_not_accessible')
except AttributeError as ae:
self.util.msg_log(u'Unerwarteter Fehler: {0}'.format(ae.message))
return False, self.util.tr(u'cc_api_not_accessible')
except:
self.util.msg_log(u'Unerwarteter Fehler: {0}'.format(sys.exc_info()[0]))
return False, self.util.tr(u'cc_invalid_json')
if result['success'] is False:
return False, result['error']['message']
return True, result['result']