mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2025-12-14 13:14:39 +00:00
67 lines
2.1 KiB
Python
67 lines
2.1 KiB
Python
import json
|
|
import requests
|
|
from rclpy.logging import get_logger
|
|
|
|
|
|
class BaseRequest:
|
|
def __init__(self):
|
|
self._logger = get_logger(__name__)
|
|
|
|
def get_logger(self):
|
|
return self._logger
|
|
|
|
def get(self, url, params, headers={"Content-Type": "application/json"}):
|
|
try:
|
|
response = requests.get(url, params=params, headers=headers, timeout=30)
|
|
self.get_logger().debug(
|
|
f"Request >>> : {params} {response.status_code} {response.text}"
|
|
)
|
|
if response.status_code == 200:
|
|
return response.json()
|
|
|
|
except Exception as e:
|
|
self.get_logger().error(f"Request ERROR: {e}")
|
|
return
|
|
|
|
def post(self, url, params={}, files=None, headers={"Content-Type": "application/json"}):
|
|
try:
|
|
response = requests.post(
|
|
url, data=json.dumps(params) if params else None, headers=headers, timeout=120, files=files
|
|
)
|
|
self.get_logger().debug(
|
|
f"Request >>> : {response.request.body} {response.status_code} {response.text}"
|
|
)
|
|
if response.status_code == 200:
|
|
return response.json()
|
|
else:
|
|
raise Exception("Request ERROR:", response.text)
|
|
|
|
except Exception as e:
|
|
self.get_logger().error(f"Request ERROR: {e}")
|
|
return
|
|
|
|
def form_post(self, url, params):
|
|
try:
|
|
response = requests.post(
|
|
url=url,
|
|
data=params,
|
|
headers={"Content-Type": "application/x-www-form-urlencoded"},
|
|
timeout=3,
|
|
)
|
|
self.get_logger().debug(
|
|
f"Request >>> : {response.request.body} {response.status_code} {response.text}"
|
|
)
|
|
if response.status_code == 200:
|
|
return response.json()
|
|
else:
|
|
raise Exception("Request ERROR:", response.text)
|
|
|
|
except Exception as e:
|
|
self.get_logger().error(f"Request ERROR: {e}")
|
|
return
|
|
|
|
|
|
# 使用示例
|
|
if __name__ == "__main__":
|
|
pass
|