一. requests
利用restful接口api得到它的json格式响应,或者text格式
import requests
class HTTP:
@staticmethod # 没有用到self
def get(url, return_json=True):
r = requests.get(url)
# restful api json格式
if r.status_code != 200:
return {} if return_json else ''
return r.json() if return_json else r.text
二. urllib
from urllib import request, parse
import json
def get_with_urllib(url, json_return=True):
url = parse.quote(url, safe='/:?=&') # 中文编码错误,保留关键字url中的键值对符号不被编码
try:
with request.urlopen(url) as r:
result_str = r.read() # 得到的书字节码字符串 b''
result_str = str(result_str, encoding='utf-8') # 转码 为utf-8
if json_return:
return json.loads(result_str)
else:
return result_str
except OSError as e: # 404异常处理,urllib中404会抛异常
print(e.reason)
if json_return:
return {}
else:
return None