资源简介
用python3写的基于http协议的通讯端,可以将客户端组织的数据发往服务器,自动帮你管理session,支持失败自动重试
代码片段和文件信息
# -*- coding:utf-8 -*-
#!/usr/bin/python3
from http import client
from urllib.parse import urlencode
from urllib.parse import urlparse
import time
class HttpClient:
‘‘‘
基于http协议的通讯端,可以将客户端组织的数据发往服务器自动帮你管理session
‘‘‘
C_HTTP_HEADER_USER_AGENT = ‘user-agent‘
C_HTTP_HEADER_COOKIE = ‘cookie‘
C_HTTP_HEADER_SET_COOKIE = ‘Set-Cookie‘
__server=None
__port=None
__service=None
__timeout = None
__sessionidname = None
__cookies = {}
__requestheaders = {}
__hasresponse = False
__response = None
def setTimeout(self timeout):
‘‘‘设置超时时间
parameter
timeout 超时时间
return
None
‘‘‘
self.__timeout = timeout
def addRequestHeader(self headerName value):
‘‘‘
添加请求头信息
parameter
headerName 请求名
value 请求内容
return
None
‘‘‘
if headerName in self.__requestheaders.keys():
del self.__requestheaders[headerName]
self.__requestheaders[headerName] = value
def setSessionIdName(self sessionIdName):
‘‘‘
设置sessionid的名字,通过此属性可以避免每次提交请求都创建新session的问题
parameter
sessionIdName session的名字
return
None
‘‘‘
self.__sessionidname = sessionIdName
def clearRequestHeaders(self):
‘‘‘
清除请求头
‘‘‘
self.__requestheaders.clear()
def send(self method url parameters):
‘‘‘
发送数据
parameter
method GET/POST
url 请求地址http://127.0.0.1:8080/serveric/demo1
parameters 请求Dict
return
True/False
‘‘‘
self.__hasresponse = False
urlres = urlparse(url)
for i in range(1 3):
conn = client.HTTPConnection(urlres.hostname urlres.port False timeout=self.__timeout)
try:
if “POST“ == method.upper():
self.addRequestHeader(“Content-Type“ “application/x-www-form-urlencoded“)
self.addRequestHeader(“Cache-Control“ “no-cacheno-storemust-revalidatepost-check=0ptr-check=0“)
self.addRequestHeader(‘Accept‘ ‘text/plain‘)
self.addRequestHeader(“Connection“ “Keep-Alive“)
sCookies = self.map2String(self.__cookies ‘;‘)
if not sCookies.find(self.__sessionidname):
sCookies = ““.join([sCookies “;“ self.__sessionidname “=“ self.__cookies[self.__sessionidname]])
if sCookies != None and sCookies != ““:
self.addRequestHeader(self.C_HTTP_HEADER_COOKIE sCookies) #把Cookies信息加入RequestHeader
sParams = urlencode(parameters encoding=‘gbk‘)
conn.request(method urlres.path body=sParams headers = self.__requestheaders)
result = conn.getresponse()
if result.status != 200:
return False
self.__response= result.read().decode(‘utf-8‘)
s
相关资源
- python实现扫描线填充算法,可以画凹
- python日期时间运算
- python实现的ping工具
- Python简版聊天室代码
- Flask-login
- 矩阵分解在MovieLens上的Python实现
- 全国840个气象站点日照时数转日总太
- python 3.6 socket传输视频
- 基于PYQT编写的人脸识别软件
- 续Python3.x+PyQtChart实现数据可视化界面
- 疯狂Python讲义习题答案.rar
- A*算法解决十五数码问题Python程序、报
- 使用python tkinter写的登陆窗口源码
- caffe_pb2.py
- LUTAI.Tools.IronPythonCheckTool
- 基于python的猜单词游戏开发
- 基于Python实现的Pagerank算法
- Python实现数据库
- 传智播客Python就业班2018.zip
- Python对爬取微博的评论进行jieba分词和
- python爬虫 破解js加密有道词典案列的
- python写的旅游网站源码
- 利用鸢尾花数据集画出P-R曲线 pytho
- pyHook-1.5.1-cp38-cp38-win_amd64.whl
- freesmallgames.zip
- python一加云相册批量爬虫
- 实战python利用线性回归来预测鲍鱼年
- 实战python线性回归
- RSA算法的纯Python实现源码
- 请求分页存储管理Python实现源代码+课
评论
共有 条评论