Skip to content

Instantly share code, notes, and snippets.

@TSW1133
Created September 2, 2022 05:56
Show Gist options
  • Save TSW1133/5ceaf2613e49d4f081370d8903c8bf22 to your computer and use it in GitHub Desktop.
Save TSW1133/5ceaf2613e49d4f081370d8903c8bf22 to your computer and use it in GitHub Desktop.
WINhttp
# coding:utf-8
import time
import requests
class WinHttp:
__WinHttp_modes = 0 # 默认为 GET 访问
__WinHttp_url = ""
__WinHttp_txt = ""
__WinHttp_resp = ""
__WinHttp_headers = {
'Content-Type': "application/json",
'User-Agent': "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (HTML, like Gecko) "
"Chrome/104.0.5112.102 Mobile Safari/537.36 Edg/104.0.1293.70 "
}
__WinHttp_Cookies = {}
__WinHttp_Time = 0
__WinHttp_proxies = {'http': None, 'https': None}
def Open(self, url, modes): # 入参数 url 为 地址 modes 为方法 “GET||0” “POST||1”
if url is not None and modes is not None:
self.__WinHttp_url = url
resp = True
if modes == "GET" or modes == 0:
self.__WinHttp_modes = 0
else:
self.__WinHttp_modes = 1
else:
resp = False
self.__WinHttp_Time = int(round(time.time() * 1000))
return resp
def Send(self, body=""):
if self.__WinHttp_modes == 0:
resp = requests.get(url=self.__WinHttp_url, headers=self.__WinHttp_headers, proxies=self.__WinHttp_proxies)
else:
resp = requests.post(url=self.__WinHttp_url, data=body, headers=self.__WinHttp_headers,
proxies=self.__WinHttp_proxies)
self.__WinHttp_resp = resp
self.__WinHttp_Time = int(round(time.time() * 1000)) - self.__WinHttp_Time
return True
def GetResponseTxt(self, modes=1):
resp = self.__WinHttp_resp.text
if modes == 1:
resp = self.__WinHttp_resp.text
elif modes == 2:
resp = resp.encode("utf-8").decode("utf-8")
elif modes == 3:
resp = resp.encode("raw_unicode_escape").decode("utf-8")
return resp
def GetResponseHeaders(self): # 取出全部协议头
resp = self.__WinHttp_resp.headers
return resp
def GetResponseHeader(self, name, value_modes=False): # 取出指定协议头
if name == "":
back = "失败[没有传入需获取的键名]"
return back
if value_modes is True:
back = f'{name}{":"}{self.__WinHttp_resp.headers[name]}'
else:
back = self.__WinHttp_resp.headers[name]
return back
def SetHeader(self, name, value): # 设置单个Header
if name == '' or value == '':
resp = "失败[没有传入设置的Header]"
return resp
elif name == 'Content-Type':
resp = "已存在"
return resp
elif name == 'User-Agent':
self.__WinHttp_headers['User-Agent'] = value
else:
self.__WinHttp_headers.update({f'{name}': f'{value}'})
return self.__WinHttp_headers
def GetResponseCookies(self):
resp = self.__WinHttp_resp.cookies
return resp
def GetTimes(self):
return self.__WinHttp_Time
def GetResponseCookie(self, name):
if name == '':
resp = "失败[没有传入需要的Cookie]"
return resp
else:
resp = self.__WinHttp_resp.cookies[name]
return resp
def GetProxiesByUrl(self, url):
if url == "":
resp = "URL链接错误"
else:
re = requests.get(url=url)
resp = re.text
return resp.split()
def SetProxies(self, proxies):
self.__WinHttp_proxies = {
'http': 'http://'f'{proxies}',
'https': 'https://'f'{proxies}',
}
return self.__WinHttp_proxies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment