#!/usr/bin/env python
# -*- coding:utf-8 -*-
import urllib.request
import http.cookiejar
import urllib.parse
import ssl
from globalpkg.log import logger
class MyHttp:
'''配置要測試接口服務器的ip、端口、域名等信息,封裝http請求方法,http頭設置'''
def __init__(self, protocol, host, port, header = {}):
# 從配置文件中讀取接口服務器IP、域名,端口
self.protocol = protocol
self.host = host
self.port = port
self.headers = header # http 頭
#install cookie
cj = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
urllib.request.install_opener(opener)
# 添加以支持ssl # 注意,發起的請求要為443端口
https_sslv3_handler = urllib.request.HTTPSHandler(context=ssl.SSLContext(ssl.PROTOCOL_SSLv2))
opener = urllib.request.build_opener(https_sslv3_handler)
urllib.request.install_opener(opener)
def set_host(self, host):
self.host = host
def get_host(self):
return self.host
def get_protocol(self):
return self.protocol
def set_port(self, port):
self.port = port
def get_port(self):
return self.port
# 設置http頭
def set_header(self, headers):
self.headers = headers
# 封裝HTTP GET請求方法
def get(self, url, params=''):
url = self.protocol + '://' + self.host + ':' + str(self.port) + url + params
logger.info('發起的請求為:%s' % url)
logger.info('請求頭為:%s' % self.headers)
request = urllib.request.Request(url, headers=self.headers)
try:
response = urllib.request.urlopen(request)
response_body = response.read()
response_header = response.getheaders()
response_status_code = response.status
response = [response_body, response_header, response_status_code]
return response
except Exception as e:
logger.error('發送請求失敗,原因:%s' % e)
return None
# 封裝HTTP POST請求方法
def post(self, url, data=''):
url = self.protocol + '://' + self.host + ':' + str(self.port) + url
logger.info('發起的請求為:%s' % url)
logger.info('參數為:%s' % data)
logger.info('請求頭為:%s' % self.headers)
request = urllib.request.Request(url, headers=self.headers)
try:
response = urllib.request.urlopen(request, data)
response_body = response.read()
response_header = response.getheaders()
response_status_code = response.status
response = [response_body, response_header, response_status_code]
return response
except Exception as e:
logger.error('發送請求失敗,原因:%s' % e)
return None
封裝HTTP xxx請求方法
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。