Files
2025-10-20 12:32:18 +08:00

49 KiB

In [1]:
from requests import get,post
import hashlib
In [3]:
accessToken = "4a1c3f90c2d6483286a79d9e88cfaf0d"
In [4]:
post("http://door.hxzhxy.cn:1314/demo",json={"demo":1},timeout=5)
Out [4]:
<Response [400]>
In [5]:
post("http://100.64.0.1:9000",json={"demo":1},timeout=5)
---------------------------------------------------------------------------
ConnectionRefusedError                    Traceback (most recent call last)
File d:\Anaconda3\Lib\site-packages\urllib3\connection.py:196, in HTTPConnection._new_conn(self)
    195 try:
--> 196     sock = connection.create_connection(
    197         (self._dns_host, self.port),
    198         self.timeout,
    199         source_address=self.source_address,
    200         socket_options=self.socket_options,
    201     )
    202 except socket.gaierror as e:

File d:\Anaconda3\Lib\site-packages\urllib3\util\connection.py:85, in create_connection(address, timeout, source_address, socket_options)
     84 try:
---> 85     raise err
     86 finally:
     87     # Break explicitly a reference cycle

File d:\Anaconda3\Lib\site-packages\urllib3\util\connection.py:73, in create_connection(address, timeout, source_address, socket_options)
     72     sock.bind(source_address)
---> 73 sock.connect(sa)
     74 # Break explicitly a reference cycle

ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。

The above exception was the direct cause of the following exception:

NewConnectionError                        Traceback (most recent call last)
File d:\Anaconda3\Lib\site-packages\urllib3\connectionpool.py:789, in HTTPConnectionPool.urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, preload_content, decode_content, **response_kw)
    788 # Make the request on the HTTPConnection object
--> 789 response = self._make_request(
    790     conn,
    791     method,
    792     url,
    793     timeout=timeout_obj,
    794     body=body,
    795     headers=headers,
    796     chunked=chunked,
    797     retries=retries,
    798     response_conn=response_conn,
    799     preload_content=preload_content,
    800     decode_content=decode_content,
    801     **response_kw,
    802 )
    804 # Everything went great!

File d:\Anaconda3\Lib\site-packages\urllib3\connectionpool.py:495, in HTTPConnectionPool._make_request(self, conn, method, url, body, headers, retries, timeout, chunked, response_conn, preload_content, decode_content, enforce_content_length)
    494 try:
--> 495     conn.request(
    496         method,
    497         url,
    498         body=body,
    499         headers=headers,
    500         chunked=chunked,
    501         preload_content=preload_content,
    502         decode_content=decode_content,
    503         enforce_content_length=enforce_content_length,
    504     )
    506 # We are swallowing BrokenPipeError (errno.EPIPE) since the server is
    507 # legitimately able to close the connection after sending a valid response.
    508 # With this behaviour, the received response is still readable.

File d:\Anaconda3\Lib\site-packages\urllib3\connection.py:398, in HTTPConnection.request(self, method, url, body, headers, chunked, preload_content, decode_content, enforce_content_length)
    397     self.putheader(header, value)
--> 398 self.endheaders()
    400 # If we're given a body we start sending that in chunks.

File d:\Anaconda3\Lib\http\client.py:1331, in HTTPConnection.endheaders(self, message_body, encode_chunked)
   1330     raise CannotSendHeader()
-> 1331 self._send_output(message_body, encode_chunked=encode_chunked)

File d:\Anaconda3\Lib\http\client.py:1091, in HTTPConnection._send_output(self, message_body, encode_chunked)
   1090 del self._buffer[:]
-> 1091 self.send(msg)
   1093 if message_body is not None:
   1094 
   1095     # create a consistent interface to message_body

File d:\Anaconda3\Lib\http\client.py:1035, in HTTPConnection.send(self, data)
   1034 if self.auto_open:
-> 1035     self.connect()
   1036 else:

File d:\Anaconda3\Lib\site-packages\urllib3\connection.py:236, in HTTPConnection.connect(self)
    235 def connect(self) -> None:
--> 236     self.sock = self._new_conn()
    237     if self._tunnel_host:
    238         # If we're tunneling it means we're connected to our proxy.

File d:\Anaconda3\Lib\site-packages\urllib3\connection.py:211, in HTTPConnection._new_conn(self)
    210 except OSError as e:
--> 211     raise NewConnectionError(
    212         self, f"Failed to establish a new connection: {e}"
    213     ) from e
    215 # Audit hooks are only available in Python 3.8+

NewConnectionError: <urllib3.connection.HTTPConnection object at 0x0000016E573E2C90>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。

The above exception was the direct cause of the following exception:

MaxRetryError                             Traceback (most recent call last)
File d:\Anaconda3\Lib\site-packages\requests\adapters.py:589, in HTTPAdapter.send(self, request, stream, timeout, verify, cert, proxies)
    588 try:
--> 589     resp = conn.urlopen(
    590         method=request.method,
    591         url=url,
    592         body=request.body,
    593         headers=request.headers,
    594         redirect=False,
    595         assert_same_host=False,
    596         preload_content=False,
    597         decode_content=False,
    598         retries=self.max_retries,
    599         timeout=timeout,
    600         chunked=chunked,
    601     )
    603 except (ProtocolError, OSError) as err:

File d:\Anaconda3\Lib\site-packages\urllib3\connectionpool.py:843, in HTTPConnectionPool.urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, preload_content, decode_content, **response_kw)
    841     new_e = ProtocolError("Connection aborted.", new_e)
--> 843 retries = retries.increment(
    844     method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]
    845 )
    846 retries.sleep()

File d:\Anaconda3\Lib\site-packages\urllib3\util\retry.py:519, in Retry.increment(self, method, url, response, error, _pool, _stacktrace)
    518     reason = error or ResponseError(cause)
--> 519     raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
    521 log.debug("Incremented Retry for (url='%s'): %r", url, new_retry)

MaxRetryError: HTTPConnectionPool(host='100.64.0.1', port=9000): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0000016E573E2C90>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))

During handling of the above exception, another exception occurred:

ConnectionError                           Traceback (most recent call last)
Cell In[5], line 1
----> 1 post("http://100.64.0.1:9000",json={"demo":1},timeout=5)

File d:\Anaconda3\Lib\site-packages\requests\api.py:115, in post(url, data, json, **kwargs)
    103 def post(url, data=None, json=None, **kwargs):
    104     r"""Sends a POST request.
    105 
    106     :param url: URL for the new :class:`Request` object.
   (...)
    112     :rtype: requests.Response
    113     """
--> 115     return request("post", url, data=data, json=json, **kwargs)

File d:\Anaconda3\Lib\site-packages\requests\api.py:59, in request(method, url, **kwargs)
     55 # By using the 'with' statement we are sure the session is closed, thus we
     56 # avoid leaving sockets open which can trigger a ResourceWarning in some
     57 # cases, and look like a memory leak in others.
     58 with sessions.Session() as session:
---> 59     return session.request(method=method, url=url, **kwargs)

File d:\Anaconda3\Lib\site-packages\requests\sessions.py:589, in Session.request(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)
    584 send_kwargs = {
    585     "timeout": timeout,
    586     "allow_redirects": allow_redirects,
    587 }
    588 send_kwargs.update(settings)
--> 589 resp = self.send(prep, **send_kwargs)
    591 return resp

File d:\Anaconda3\Lib\site-packages\requests\sessions.py:703, in Session.send(self, request, **kwargs)
    700 start = preferred_clock()
    702 # Send the request
--> 703 r = adapter.send(request, **kwargs)
    705 # Total elapsed time of the request (approximately)
    706 elapsed = preferred_clock() - start

File d:\Anaconda3\Lib\site-packages\requests\adapters.py:622, in HTTPAdapter.send(self, request, stream, timeout, verify, cert, proxies)
    618     if isinstance(e.reason, _SSLError):
    619         # This branch is for urllib3 v1.22 and later.
    620         raise SSLError(e, request=request)
--> 622     raise ConnectionError(e, request=request)
    624 except ClosedPoolError as e:
    625     raise ConnectionError(e, request=request)

ConnectionError: HTTPConnectionPool(host='100.64.0.1', port=9000): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0000016E573E2C90>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
In [2]:
def md5_encrypt(text:str):
    """将字符串转换为 MD5 32位小写格式"""
    # 创建 MD5 对象
    md5 = hashlib.md5()
    # 将文本编码为字节并更新哈希
    md5.update(text.encode('utf-8'))
    # 返回十六进制哈希值的32位小写字符串
    return md5.hexdigest()
md5_encrypt("123456")
Out [2]:
'e10adc3949ba59abbe56e057f20f883e'
In [3]:
# a5f7f040e35d5d21abbb8c40c0d26e07
In [4]:
clientId = "4a1c3f90c2d6483286a79d9e88cfaf0d"
clientSecret = "82743c825b3ba0d8671bef0a466b8eb9"
proxy={
    "http": "http://127.0.0.1:8080",
    "https": "http://127.0.0.1:8080",
}
data={
    "clientId":clientId,
    "clientSecret":clientSecret,
    "username":"xtlft@qq.com",
    "password":md5_encrypt("Xia2431384218"),
}
data = post("https://cnapi.ttlock.com/oauth2/token",data=data).json()
access_token = data["access_token"]
refresh_token = data["refresh_token"]
In [5]:
data
Out [5]:
{'access_token': 'a5f7f040e35d5d21abbb8c40c0d26e07',
 'refresh_token': 'a486a831275bfabdb714471e4f363efc',
 'uid': 42665043,
 'openid': 1889897261,
 'scope': 'user,key,room',
 'token_type': 'Bearer',
 'expires_in': 7157645}
In [6]:
# access_token = 'a5f7f040e35d5d21abbb8c40c0d26e07'
In [7]:
keyId = "244371333"
In [7]:
import time
In [6]:
#获取锁详情
lockId = "8686987"
get("https://cnapi.ttlock.com/v3/lock/detail ",params={
    "accessToken":access_token,
    "clientId":"4a1c3f90c2d6483286a79d9e88cfaf0d",
    "lockId":lockId,
    "date":int(time.time()*1000),
}).json()
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[6], line 7
      1 #获取锁详情
      2 lockId = "8686987"
      3 get("https://cnapi.ttlock.com/v3/lock/detail ",params={
      4     "accessToken":access_token,
      5     "clientId":"4a1c3f90c2d6483286a79d9e88cfaf0d",
      6     "lockId":lockId,
----> 7     "date":int(time.time()*1000),
      8 }).json()

NameError: name 'time' is not defined
Cell:
[Cell type raw - unsupported, skipped]
In [48]:
#更新锁数据
post("https://cnapi.ttlock.com/v3/lock/updateLockData",data={
    "clientId":clientId,
    "accessToken":access_token,
    "lockId":lockId,
    "date":int(time.time()*1000),
    "lockData":''
    
},proxies=proxy,verify=False
).text
Out [48]:
d:\Anaconda3\Lib\site-packages\urllib3\connectionpool.py:1099: InsecureRequestWarning: Unverified HTTPS request is being made to host '127.0.0.1'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings
  warnings.warn(
'{"errcode":-3,"errmsg":"Invalid Parameter.","description":"参数不合法。"}'
In [22]:
#开锁
post("https://cnapi.ttlock.com/v3/lock/unlock",data={
    "clientId":clientId,
    "accessToken":access_token,
    "lockId":lockId,
    "date":int(time.time()*1000),
}).json()
Out [22]:
{'errcode': 0,
 'errmsg': 'none error message or means yes',
 'description': '表示成功或是'}
In [37]:
#关锁
post("https://cnapi.ttlock.com/v3/lock/lock",data={
    "clientId":clientId,
    "accessToken":access_token,
    "lockId":lockId,
    "date":int(time.time()*1000),
}).json()
Out [37]:
{'errcode': 0,
 'errmsg': 'none error message or means yes',
 'description': '表示成功或是'}
In [8]:
from datetime import datetime
import time
In [ ]:
#校准时间
data = post("https://cnapi.ttlock.com/v3/lock/updateDate",data={
        "clientId":clientId,
    "accessToken":access_token,
    "lockId":lockId,
    "date":int(time.time()*1000),
},timeout=10).json()
datetime.fromtimestamp(data['date']/1000).strftime('%Y-%m-%d %H:%M:%S')
'2025-09-11 16:25:45'
In [32]:
#查询电量
data = get("https://cnapi.ttlock.com/v3/lock/queryElectricQuantity",params={
    "clientId":clientId,
    "accessToken":access_token,
    "lockId":lockId,
    "date":int(time.time()*1000),
}
).json()
electricQuantity = data['electricQuantity']
electricQuantity
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
Cell In[32], line 9
      1 #查询电量
      2 data = get("https://cnapi.ttlock.com/v3/lock/queryElectricQuantity",params={
      3     "clientId":clientId,
      4     "accessToken":access_token,
   (...)
      7 }
      8 ).json()
----> 9 electricQuantity = data['electricQuantity']
     10 electricQuantity

KeyError: 'electricQuantity'
In [9]:
def getTimeStamp(date):
    return int(datetime.strptime(date,"%Y-%m-%d %H:%M:%S").timestamp()*1000)
In [10]:
#锁操作记录
get("https://cnapi.ttlock.com/v3/lockRecord/list",params={
    "clientId":clientId,
    "accessToken":access_token,
    "lockId":lockId,
    "startDate":getTimeStamp("2025-09-01 16:34:38"),
    "endDate":getTimeStamp("2025-09-11 16:34:38"),
    "pageNo":1,
    "pageSize":100,
    "date":int(time.time()*1000),
}).json()
Out [10]:
{'total': 14,
 'pages': 1,
 'pageNo': 1,
 'pageSize': 100,
 'list': [{'recordId': 1963990433,
   'lockId': 8686987,
   'serverDate': 1757579128000,
   'recordTypeFromLock': 28,
   'hotelUsername': 'xtlft@qq.com',
   'recordType': 12,
   'success': 1,
   'keyName': 'xtlft',
   'keyboardPwd': '',
   'lockDate': 1757579106000,
   'username': 'xtlft@qq.com'},
  {'recordId': 1963989469,
   'lockId': 8686987,
   'serverDate': 1757579099000,
   'recordTypeFromLock': 28,
   'hotelUsername': 'xtlft@qq.com',
   'recordType': 12,
   'success': 1,
   'keyName': 'xtlft',
   'keyboardPwd': '',
   'lockDate': 1757579088000,
   'username': 'xtlft@qq.com'},
  {'recordId': 1963989457,
   'lockId': 8686987,
   'serverDate': 1757579098000,
   'recordTypeFromLock': 28,
   'hotelUsername': 'xtlft@qq.com',
   'recordType': 12,
   'success': 1,
   'keyName': 'xtlft',
   'keyboardPwd': '',
   'lockDate': 1757579077000,
   'username': 'xtlft@qq.com'},
  {'recordId': 1963969537,
   'lockId': 8686987,
   'serverDate': 1757578767000,
   'recordTypeFromLock': 1,
   'hotelUsername': 'xtlft@qq.com',
   'recordType': 1,
   'success': 1,
   'keyName': 'xtlft',
   'keyboardPwd': '',
   'lockDate': 1757578763000,
   'username': 'xtlft@qq.com'},
  {'recordId': 1963963397,
   'lockId': 8686987,
   'serverDate': 1757578644000,
   'recordTypeFromLock': 28,
   'hotelUsername': 'xtlft@qq.com',
   'recordType': 12,
   'success': 1,
   'keyName': 'xtlft',
   'keyboardPwd': '',
   'lockDate': 1757578625000,
   'username': 'xtlft@qq.com'},
  {'recordId': 1963944763,
   'lockId': 8686987,
   'serverDate': 1757578368000,
   'recordTypeFromLock': 26,
   'hotelUsername': 'xtlft@qq.com',
   'recordType': 11,
   'success': 1,
   'keyName': 'xtlft',
   'keyboardPwd': '',
   'lockDate': 1757578333000,
   'username': 'xtlft@qq.com'},
  {'recordId': 1963944755,
   'lockId': 8686987,
   'serverDate': 1757578367000,
   'recordTypeFromLock': 26,
   'hotelUsername': 'xtlft@qq.com',
   'recordType': 11,
   'success': 1,
   'keyName': 'xtlft',
   'keyboardPwd': '',
   'lockDate': 1757578324000,
   'username': 'xtlft@qq.com'},
  {'recordId': 1963940805,
   'lockId': 8686987,
   'serverDate': 1757578293000,
   'recordTypeFromLock': 28,
   'hotelUsername': 'xtlft@qq.com',
   'recordType': 12,
   'success': 1,
   'keyName': 'xtlft',
   'keyboardPwd': '',
   'lockDate': 1757578278000,
   'username': 'xtlft@qq.com'},
  {'recordId': 1963940781,
   'lockId': 8686987,
   'serverDate': 1757578292000,
   'recordTypeFromLock': 28,
   'hotelUsername': 'xtlft@qq.com',
   'recordType': 12,
   'success': 1,
   'keyName': 'xtlft',
   'keyboardPwd': '',
   'lockDate': 1757578246000,
   'username': 'xtlft@qq.com'},
  {'recordId': 1963938539,
   'lockId': 8686987,
   'serverDate': 1757578250000,
   'recordTypeFromLock': 28,
   'hotelUsername': 'xtlft@qq.com',
   'recordType': 12,
   'success': 1,
   'keyName': 'xtlft',
   'keyboardPwd': '',
   'lockDate': 1757578233000,
   'username': 'xtlft@qq.com'},
  {'recordId': 1963921293,
   'lockId': 8686987,
   'serverDate': 1757577937000,
   'recordTypeFromLock': 28,
   'hotelUsername': 'xtlft@qq.com',
   'recordType': 12,
   'success': 1,
   'keyName': 'xtlft',
   'keyboardPwd': '',
   'lockDate': 1757577919000,
   'username': 'xtlft@qq.com'},
  {'recordId': 1963811969,
   'lockId': 8686987,
   'serverDate': 1757575916000,
   'recordTypeFromLock': 1,
   'hotelUsername': 'xtlft@qq.com',
   'recordType': 1,
   'success': 1,
   'keyName': 'xtlft',
   'keyboardPwd': '',
   'lockDate': 1757575914000,
   'username': 'xtlft@qq.com'},
  {'recordId': 1963637709,
   'lockId': 8686987,
   'serverDate': 1757572596000,
   'recordTypeFromLock': 1,
   'hotelUsername': 'xtlft@qq.com',
   'recordType': 1,
   'success': 1,
   'keyName': 'xtlft',
   'keyboardPwd': '',
   'lockDate': 1757572594000,
   'username': 'xtlft@qq.com'},
  {'recordId': 1963066001,
   'lockId': 8686987,
   'serverDate': 1757562495000,
   'recordTypeFromLock': 1,
   'hotelUsername': 'xtlft@qq.com',
   'recordType': 1,
   'success': 1,
   'keyName': 'xtlft',
   'keyboardPwd': '',
   'lockDate': 1757562493000,
   'username': 'xtlft@qq.com'}]}
In [25]:
post("https://cnapi.ttlock.com/v3/identityCard/addForReversedCardNumber",data={
    "clientId":clientId,
    "accessToken":access_token,
    "lockId":lockId,
    "cardNumber":"0022818748",
    "cardName":"测试",
    "startDate":0,
    "endDate":0,
    "addType":2,
    "date":int(time.time()*1000),
}).json()
Out [25]:
{'cardId': 114762009}
In [26]:
data = get("https://cnapi.ttlock.com/v3/identityCard/list",params={
    "clientId":clientId,
    "accessToken":access_token,
    "lockId":lockId,
    "pageNo":1,
    "pageSize":100,
    "date":int(time.time()*1000),
}).json()
print(data)
data = data["list"]
data
Out [26]:
{'total': 1, 'pages': 1, 'pageNo': 1, 'pageSize': 100, 'list': [{'lockId': 8686987, 'cardName': '测试', 'endDate': 0, 'nickName': 'xtlft', 'cardId': 114762009, 'cardType': 1, 'userId': 'xtlft@qq.com', 'cardNumber': '3157220353', 'startDate': 0, 'senderUsername': 'xtlft@qq.com', 'createDate': 1758193960000, 'status': 1}]}
[{'lockId': 8686987,
  'cardName': '测试',
  'endDate': 0,
  'nickName': 'xtlft',
  'cardId': 114762009,
  'cardType': 1,
  'userId': 'xtlft@qq.com',
  'cardNumber': '3157220353',
  'startDate': 0,
  'senderUsername': 'xtlft@qq.com',
  'createDate': 1758193960000,
  'status': 1}]
In [32]:
access_token
Out [32]:
'a5f7f040e35d5d21abbb8c40c0d26e07'
In [ ]:
post("https://cnapi.ttlock.com/v3/identityCard/addForReversedCardNumber",data={
    "clientId":clientId,
    "accessToken":access_token,
    "lockId":lockId,
    "cardNumber":"0022818748",
    "cardName":"夏天乐带0",
    "startDate":0,
    "endDate":0,
    "addType":2,
    "date":int(time.time()*1000),       
}).json()
{'cardId': 114619437}
In [38]:
post("https://cnapi.ttlock.com/v3/keyboardPwd/add",data={
    "clientId":clientId,
    "accessToken":access_token,
    "lockId":lockId,
    "keyboardPwd":"123456",
    "keyboardPwdName":"密码测试",
    "keyboardPwdType":2,
    "addType":2,
    "date":int(time.time()*1000),
}).json()
Out [38]:
{'keyboardPwdId': 96034855}
In [40]:
post("https://cnapi.ttlock.com/v3/keyboardPwd/change",data={
    "clientId":clientId,
    "accessToken":access_token,
    "lockId":lockId,
    "keyboardPwdId":96034855,
    "newKeyboardPwd":12345677,
    "date":int(time.time()*1000),
}).text
Out [40]:
'{"errcode":0,"errmsg":"none error message or means yes","description":"表示成功或是"}'
In [51]:
get("https://cnapi.ttlock.com/v3/lock/listKeyboardPwd",params={
    "clientId":clientId,
    "accessToken":access_token,
    "lockId":lockId,
    "pageNo":1,
    "pageSize":100,
    "orderBy":1,
    "date":int(time.time()*1000),
}).json()
Out [51]:
{'list': [], 'pageNo': 1, 'pageSize': 100, 'pages': 0, 'total': 0}
In [ ]:
post('https://cnapi.ttlock.com/v3/keyboardPwd/delete',data={
    "clientId":clientId,
    "accessToken":access_token,
    "lockId":lockId,
    "keyboardPwdId":96034855,
    "date":int(time.time()*1000),
})
In [47]:
post("https://cnapi.ttlock.com/v3/identityCard/addForReversedCardNumber",data={
    "clientId":clientId,
    "accessToken":access_token,
    "lockId":lockId,
    "cardNumber":"1869101204",
    "cardName":"夏天乐手",
    "startDate":0,
    "endDate":0,
    "addType":2,
    "date":int(time.time()*1000),
    
}).json()
Out [47]:
{'cardId': 114339443}
In [ ]:
{'total': 0, 'pages': 0, 'pageNo': 1, 'pageSize': 100, 'list': []}
[]
In [ ]:
#3157220353
In [22]:
for item in data:
    
    #删除卡,
    tem = post("https://cnapi.ttlock.com/v3/identityCard/delete",data={
        "clientId":clientId,
        "accessToken":access_token,
        "lockId":int(item["lockId"]),
        "cardId":int(item["cardId"]),
        "deleteType":2,
        "date":int(time.time()*1000),
    }).json()
    print(tem)
{'errcode': 0, 'errmsg': 'none error message or means yes', 'description': '表示成功或是'}
In [24]:
post("https://www.xtleto.cn:1314/demo",json={"demo":1},timeout=10).text
Out [24]:
'{\n  "received_data": {\n    "demo": 1\n  },\n  "received_headers": {\n    "Accept": "*/*",\n    "Accept-Encoding": "gzip, deflate, br, zstd",\n    "Connection": "close",\n    "Content-Length": "11",\n    "Content-Type": "application/json",\n    "Host": "www.xtleto.cn",\n    "User-Agent": "python-requests/2.32.2",\n    "X-Forwarded-For": "183.220.92.154",\n    "X-Real-Ip": "183.220.92.154"\n  },\n  "status": "success"\n}\n'
In [ ]:
post("https://example.com/lockRecord/callback",data={
    "notifyType":1,
    "lockId":lockId,
    
})