您的位置:首页 > 编程语言 > Python开发

python urllib的用法实例

2016-04-26 00:00 621 查看
import urllib2
import  urllib
import  json

def _post_json_by_urllib(url,jsondata):
request=urllib2.Request(url,jsondata)
request.add_header("Content-type","application/json")
request.get_method=lambda :"POST"
request=urllib2.urlopen(request)
return request.read()

class Api(object):
def __init__(self,url):
self.url=url

def get(self,data={}):#get请求
assert type(data)==dict
data=dict([((key if type(key)!=unicode else key.encode("utf-8")) ,\
(v if type(v)!=unicode else v.encode("utf-8")) )  for key,v in data.items()])
querystring=urllib.urlencode(data)
if "?" not in self.url:
url=self.url+"?"+querystring
else:
url=self.url+'&'+querystring
try:
fd=urllib2.urlopen(url)
data=fd.read()
return (True,data)
except Exception as e :
return  (False,str(e))
def post(self,data={},is_json=False):#post请求
assert type(data)==dict
data=dict([((key if type(key)!=unicode else key.encode("utf-8")) ,\
(v if type(v)!=unicode else v.encode("utf-8")) )  for key,v in data.items()])
if is_json==False:
data=urllib.urlencode(data)
try:
#req = urllib2.Request(self.url,data)
data=urllib2.urlopen(self.url,data,timeout=3)
return (True,data.read())
except Exception as e :
return  (False,str(e))
else:
try:
data=json.dumps(data)
result=_post_json_by_urllib(self.url,data)
return  (True,result)
except Exception as e :
return  (False,str(e))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: