import requests
import gzip
import json
from numpy import random
# 获取UID
url = 'http://XXXXXXXXXXXX/cloud/DflyServer'
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Connection': 'Keep-Alive',
'Charset': 'UTF-8',
'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 11; NX651J Build/RKQ1.200826.002)',
'Host': 'xxxxxxxxx',
'Accept-Encoding': 'gzip',
'Content-Length': '168'
}
data = "name=['bangdingschool','xxxxxxxxx','xxxxxxxxx','236df500-4995-4f79-91f0-c119308abcd3','nubia','NX651J','android','11']"
res = requests.post(url, headers=headers, data=data)
uid = json.loads(res.text)['uid'] # 解压缩并解析返回的JSON数据以获取UID
print(f"UID: {uid}") # 输出UID
# 正式发送跑步的数据包
url = 'http://xxxxxxxxxxxxxxxxxxxxxxxxxxx/DragonFlyServ/Api/webserver/uploadRunData'
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Connection': 'Keep-Alive',
'Charset': 'UTF-8',
'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 11; NX651J Build/RKQ1.200826.002)',
'Host': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'Accept-Encoding': 'gzip',
'Content-Length': '1963'
}
intervalTime = 0
begintime = 1695720877
for i in range(1, 43): # 1-43,每次上传3公里左右
begintime = begintime + intervalTime
usetime = random.randint(1064 - 300, 1064 + 300) # 1064.0
endtime = usetime + 1 + begintime
distance = random.randint(3100, 3300) # 3010.0
speed = format(distance / usetime, '.16f') # 2.8289473684210527
intervalTime = random.randint(86400 - 500, 86400 + 500)
baseData = {"begintime": str(begintime), "endtime": str(endtime), "uid": str(uid), "schoolno": "xxxxxxx",
"distance": str(distance), "speed": speed, "studentno": "xxxxxxxxxxxxxxx, "atttype": "3", "eventno": "801",
"location": "", "pointstatus": "1", "usetime": str(usetime)} # 格式修正了,不需要gzip压缩
data = gzip.compress(baseData.encode())
res = requests.post(url, headers=headers, data=data)
print(res.text) # 打印响应内容检查是否成功
以上为程序主体代码,下面是报错信息,老哥们,怎么办?
C:\Users\Yang\anaconda3\envs\text\python.exe D:\360MoveData\Users\Yang\Desktop\AIhong\main.py
Traceback (most recent call last):
File "C:\Users\Yang\anaconda3\envs\text\lib\site-packages\urllib3\connection.py", line 174, in _new_conn
conn = connection.create_connection(
File "C:\Users\Yang\anaconda3\envs\text\lib\site-packages\urllib3\util\connection.py", line 72, in create_connection
for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
File "C:\Users\Yang\anaconda3\envs\text\lib\socket.py", line 954, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 11001] getaddrinfo failed
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Yang\anaconda3\envs\text\lib\site-packages\urllib3\connectionpool.py", line 714, in urlopen
httplib_response = self._make_request(
File "C:\Users\Yang\anaconda3\envs\text\lib\site-packages\urllib3\connectionpool.py", line 415, in _make_request
conn.request(method, url, **httplib_request_kw)
File "C:\Users\Yang\anaconda3\envs\text\lib\site-packages\urllib3\connection.py", line 244, in request
super(HTTPConnection, self).request(method, url, body=body, headers=headers)
File "C:\Users\Yang\anaconda3\envs\text\lib\http\client.py", line 1285, in request
self._send_request(method, url, body, headers, encode_chunked)
File "C:\Users\Yang\anaconda3\envs\text\lib\http\client.py", line 1331, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "C:\Users\Yang\anaconda3\envs\text\lib\http\client.py", line 1280, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "C:\Users\Yang\anaconda3\envs\text\lib\http\client.py", line 1040, in _send_output
self.send(msg)
File "C:\Users\Yang\anaconda3\envs\text\lib\http\client.py", line 980, in send
self.connect()
File "C:\Users\Yang\anaconda3\envs\text\lib\site-packages\urllib3\connection.py", line 205, in connect
conn = self._new_conn()
File "C:\Users\Yang\anaconda3\envs\text\lib\site-packages\urllib3\connection.py", line 186, in _new_conn
raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x0000023E4E034070>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Yang\anaconda3\envs\text\lib\site-packages\requests\adapters.py", line 486, in send
resp = conn.urlopen(
File "C:\Users\Yang\anaconda3\envs\text\lib\site-packages\urllib3\connectionpool.py", line 798, in urlopen
retries = retries.increment(
File "C:\Users\Yang\anaconda3\envs\text\lib\site-packages\urllib3\util\retry.py", line 592, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='218.195.237.156.cn', port=8012): Max retries exceeded with url: /cloud/DflyServer (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0000023E4E034070>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:\360MoveData\Users\Yang\Desktop\AIhong\main.py", line 17, in <module>
res = requests.post(url, headers=headers, data=data)
File "C:\Users\Yang\anaconda3\envs\text\lib\site-packages\requests\api.py", line 115, in post
return request("post", url, data=data, json=json, **kwargs)
File "C:\Users\Yang\anaconda3\envs\text\lib\site-packages\requests\api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Users\Yang\anaconda3\envs\text\lib\site-packages\requests\sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
File "C:\Users\Yang\anaconda3\envs\text\lib\site-packages\requests\sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
File "C:\Users\Yang\anaconda3\envs\text\lib\site-packages\requests\adapters.py", line 519, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='218.195.237.156.cn', port=8012): Max retries exceeded with url: /cloud/DflyServer (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0000023E4E034070>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))