Get请求
request = urllib2.Request(reqUrl, reqHeader)
response = urllib2.urlopen(request, reqTimeOut)
print respone.read()
Post请求
request = urllib2.Request(reqUrl,reqHeader,postData)
response = urllib2.urlopen(request, reqTimeOut)
print respone.read()
Put请求
request = urllib2.Request(reqUrl,reqHeader,postData)
response = urllib2.urlopen(request, reqTimeOut)
request.get_method = lambda: 'PUT'
print respone.read()
Delete请求
request = urllib2.Request(reqUrl,reqHeader,postData)
response = urllib2.urlopen(request, reqTimeOut)
request.get_method = lambda: 'DELETE'
print respone.read()
debug
//使用Handler打印日志
httpHandler = urllib2.HTTPHandler(debuglevel=1)
httpsHandler = urllib2.HTTPSHandler(debuglevel=1)
opener = urllib2.build_opener(httpHandler, httpsHandler)
urllib2.install_opener(opener)
总结
import urllib2
from httptst.Singleton import singleton
__metaclass = type
@singleton
class HttpHelper:
def __init__(self):
pass
name = 'http helper'
__reqHeader = {}
__reqUrl = ''
__reqTimeOut = 0
def __buildGetRequest(self):
if len(self.__reqHeader) == 0:
request = urllib2.Request(self.__reqUrl)
else:
request = urllib2.Request(self.__reqUrl, headers=self.__reqHeader)
return request
def __buildPostPutDeleteRequest(self, postData):
if len(self.__reqHeader) == 0:
request = urllib2.Request(self.__reqUrl, data=postData)
else:
request = urllib2.Request(self.__reqUrl, headers=self.__reqHeader, data=postData)
return request
def headers(self, headers):
self.__reqHeader = headers
return self
def url(self, url):
print url
self.__reqUrl = url
return self
def timeOut(self, time):
self.__reqTimeOut = time
return self
def debug(self):
httpHandler = urllib2.HTTPHandler(debuglevel=1)
httpsHandler = urllib2.HTTPSHandler(debuglevel=1)
opener = urllib2.build_opener(httpHandler, httpsHandler)
urllib2.install_opener(opener)
return self
def __handleResponse(self, request, func):
try:
if self.__reqTimeOut == 0:
res = urllib2.urlopen(request)
else:
res = urllib2.urlopen(request, self.__reqTimeOut)
func(res.read())
except urllib2.HTTPError, e:
print e.code
def get(self, func):
request = self.__buildGetRequest()
self.__handleResponse(request, func)
def post(self, postData, func):
request = self.__buildPostPutDeleteRequest(postData=postData)
self.__handleResponse(request, func)
def put(self, putData, func):
request = self.__buildPostPutDeleteRequest(postData=putData)
request.get_method = lambda: 'PUT'
self.__handleResponse(request, func)
def delete(self, putData, func):
request = self.__buildPostPutDeleteRequest(postData=putData)
request.get_method = lambda: 'DELETE'
self.__handleResponse(request, func)
测试
def getData(data):
print data
httpHelper = HttpHelper()
url_baidu = 'http://www.baidu.com'
httpHelper.url(url=url_baidu).get(func=getData)
httpHelper.debug() \
.url(url=url_post_pics) \
.headers(headers=getHeader()) \
.post(postData=post_data_pics, func=getData)
httpHelper.debug().url(url_post_invite_one).headers(getHeader()).post(post_data_invite_one,getData)