Files
2026-07-10 17:09:39 +08:00

25 lines
1.2 KiB
JavaScript

const http = require("http");
function req(path, method, data) {
return new Promise((resolve, reject) => {
const body = data ? JSON.stringify(data) : null;
const headers = { "Content-Type": "application/json" };
if (body) headers["Content-Length"] = Buffer.byteLength(body);
const r = http.request({ host: "localhost", port: 8080, path, method, headers }, (res) => {
let d = ""; res.on("data", (c) => (d += c)); res.on("end", () => resolve({ status: res.statusCode, body: d.slice(0, 200) }));
});
r.on("error", reject);
if (body) r.write(body);
r.end();
});
}
(async () => {
// 静态页面
const page = await req("/", "GET");
console.log("GET / ->", page.status, page.body.includes("简单写作") ? "(含页面)" : "");
const js = await req("/app.js", "GET");
console.log("GET /app.js ->", js.status);
// WebDAV 代理(用一个无效地址,验证代理在运行并能正确返回错误而非崩溃)
const wd = await req("/api/webdav/propfind", "POST", { base: "https://invalid.invalid.example/", path: "x.json", user: "u", pass: "p" });
console.log("webdav proxy ->", wd.status, "(代理已响应,预期非 200)");
})();