ts-guoguo-mcp-server
Version:
裹裹寄件服务MCP Server - TypeScript版本,基于Model Context Protocol的寄件服务集成工具
95 lines • 3.39 kB
JavaScript
import axios from "axios";
import { logger } from "./logger.js";
/**
* HTTP客户端类
*/
export class HTTPClient {
config;
client;
constructor(config) {
this.config = config;
this.client = axios.create({
timeout: config.timeout * 1000,
headers: config.headers,
});
}
/**
* 发送GET请求
*/
async get(endpoint, params) {
try {
const baseUrl = this.config.baseUrl.replace(/\/$/, "");
const url = `${baseUrl}/${endpoint.replace(/^\//, "")}`;
logger.info(`发送GET请求: ${url}, 参数: ${JSON.stringify(params)}`);
const response = await this.client.get(url, { params });
logger.info(`API响应成功: ${response.status}`);
return response.data;
}
catch (error) {
if (error.response) {
logger.error(`HTTP状态错误: ${error.response.status} - ${error.response.data}`);
return {
status: "error",
error_code: "HTTP_ERROR",
message: `HTTP错误 ${error.response.status}: ${JSON.stringify(error.response.data)}`,
};
}
else if (error.request) {
logger.error(`请求错误: ${error.message}`);
return {
status: "error",
error_code: "REQUEST_ERROR",
message: `请求失败: ${error.message}`,
};
}
else {
logger.error(`未知错误: ${error.message}`);
return {
status: "error",
error_code: "UNKNOWN_ERROR",
message: `未知错误: ${error.message}`,
};
}
}
}
/**
* 发送POST请求
*/
async post(endpoint, data) {
try {
const baseUrl = this.config.baseUrl.replace(/\/$/, "");
const url = `${baseUrl}/${endpoint.replace(/^\//, "")}`;
logger.info(`发送POST请求: ${url}, 数据: ${JSON.stringify(data)}`);
const response = await this.client.post(url, data);
logger.info(`API响应成功: ${response.status}`);
return response.data;
}
catch (error) {
if (error.response) {
logger.error(`HTTP状态错误: ${error.response.status} - ${error.response.data}`);
return {
status: "error",
error_code: "HTTP_ERROR",
message: `HTTP错误 ${error.response.status}: ${JSON.stringify(error.response.data)}`,
};
}
else if (error.request) {
logger.error(`请求错误: ${error.message}`);
return {
status: "error",
error_code: "REQUEST_ERROR",
message: `请求失败: ${error.message}`,
};
}
else {
logger.error(`未知错误: ${error.message}`);
return {
status: "error",
error_code: "UNKNOWN_ERROR",
message: `未知错误: ${error.message}`,
};
}
}
}
}
//# sourceMappingURL=http-client.js.map