178 lines
7.2 KiB
HTML
178 lines
7.2 KiB
HTML
|
<!DOCTYPE html>
|
|||
|
<html lang="zh-CN">
|
|||
|
<head>
|
|||
|
<meta charset="UTF-8">
|
|||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|||
|
<title>FastAPI 请求测试</title>
|
|||
|
<style>
|
|||
|
body {
|
|||
|
font-family: Arial, sans-serif;
|
|||
|
margin: 20px;
|
|||
|
}
|
|||
|
.form-group {
|
|||
|
margin-bottom: 15px;
|
|||
|
}
|
|||
|
.form-group label {
|
|||
|
display: block;
|
|||
|
margin-bottom: 5px;
|
|||
|
}
|
|||
|
.form-group input {
|
|||
|
width: 100%;
|
|||
|
padding: 8px;
|
|||
|
box-sizing: border-box;
|
|||
|
}
|
|||
|
.form-group button {
|
|||
|
padding: 10px 15px;
|
|||
|
background-color: #007bff;
|
|||
|
color: white;
|
|||
|
border: none;
|
|||
|
cursor: pointer;
|
|||
|
}
|
|||
|
.form-group button:hover {
|
|||
|
background-color: #0056b3;
|
|||
|
}
|
|||
|
.result {
|
|||
|
margin-top: 20px;
|
|||
|
padding: 10px;
|
|||
|
border: 1px solid #ccc;
|
|||
|
background-color: #f9f9f9;
|
|||
|
}
|
|||
|
.result pre {
|
|||
|
white-space: pre-wrap;
|
|||
|
word-wrap: break-word;
|
|||
|
}
|
|||
|
</style>
|
|||
|
</head>
|
|||
|
<body>
|
|||
|
<h1>FastAPI 请求测试</h1>
|
|||
|
|
|||
|
<div class="form-group">
|
|||
|
<h2>GET 请求</h2>
|
|||
|
<label for="get-username">用户名:</label>
|
|||
|
<input type="text" id="get-username" name="username" value="测试用户名1" required>
|
|||
|
<label for="get-password">密码:</label>
|
|||
|
<input type="password" id="get-password" name="password" value="123123" required>
|
|||
|
<button onclick="sendGetRequest()">发送 GET 请求</button>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="form-group">
|
|||
|
<h2>POST 请求(表单数据)</h2>
|
|||
|
<label for="post-username-form">用户名:</label>
|
|||
|
<input type="text" id="post-username-form" name="username" value="测试用户名2" required>
|
|||
|
<label for="post-password-form">密码:</label>
|
|||
|
<input type="password" id="post-password-form" name="password" value="123123" required>
|
|||
|
<button onclick="sendPostFormRequest()">发送 POST 请求(表单数据)</button>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="form-group">
|
|||
|
<h2>POST 请求(JSON 数据)</h2>
|
|||
|
<label for="post-username-json">用户名:</label>
|
|||
|
<input type="text" id="post-username-json" name="username" value="测试用户名3" required>
|
|||
|
<label for="post-password-json">密码:</label>
|
|||
|
<input type="password" id="post-password-json" name="password" value="123123" required>
|
|||
|
<button onclick="sendPostJsonRequest()">发送 POST 请求(JSON 数据)</button>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="result" id="result"></div>
|
|||
|
|
|||
|
<div>
|
|||
|
知识库提供的资料,连接淮河与长江的运河段是隋朝大运河的邗沟段(知识库中虽未直接命名该段为"邗沟",但明确记载大运河连接了五大水系包括淮河与长江)。
|
|||
|
关于运输物资,教材明确提到大运河的主要功能是运输江南的粮食(如江南地区作为重要产粮区通过运河向北方运输粮食)以及促进南北经济文化交流(如含嘉仓的粮食调配)。两项具体物资如下:
|
|||
|
1. **粮食**:江南地区作为隋唐时期重要粮食产地,通过大运河向北方运输粮食以供应关中等地(含嘉仓的粮食调配即依赖运河运输)。
|
|||
|
2. **其他经济物资**:运河带动沿河城市繁荣,促进南北经济交流,虽未明确列举其他物资名称,但教材强调其加强了"政治、经济和文化上的交流"。
|
|||
|
<img src="/static/Images/a32153e7d4534db381aebb7b0c52d139/media/image5.png"></div>
|
|||
|
(注:此为教材中隋朝大运河示意图,标注了连接水系及沿线城市。)
|
|||
|
知识库未提供更具体的物资名称,仅强调粮食运输和经济交流功能。
|
|||
|
</div>
|
|||
|
|
|||
|
<script>
|
|||
|
async function sendGetRequest() {
|
|||
|
const username = document.getElementById('get-username').value;
|
|||
|
const password = document.getElementById('get-password').value;
|
|||
|
const url = `http://127.0.0.1:8888/api/test/parse?username=${encodeURIComponent(username)}&password=${encodeURIComponent(password)}`;
|
|||
|
|
|||
|
try {
|
|||
|
const response = await fetch(url, {
|
|||
|
method: 'GET',
|
|||
|
headers: {
|
|||
|
'Accept': 'application/json'
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
if (!response.ok) {
|
|||
|
const errorText = await response.text();
|
|||
|
throw new Error(`HTTP error! Status: ${response.status}, Message: ${errorText}`);
|
|||
|
}
|
|||
|
|
|||
|
const result = await response.json();
|
|||
|
document.getElementById('result').innerHTML = `<pre>${JSON.stringify(result, null, 2)}</pre>`;
|
|||
|
} catch (error) {
|
|||
|
document.getElementById('result').innerHTML = `<pre>${error}</pre>`;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
async function sendPostFormRequest() {
|
|||
|
const username = document.getElementById('post-username-form').value;
|
|||
|
const password = document.getElementById('post-password-form').value;
|
|||
|
const url = `http://127.0.0.1:8888/api/test/parse`;
|
|||
|
|
|||
|
const formData = new FormData();
|
|||
|
formData.append('username', username);
|
|||
|
formData.append('password', password);
|
|||
|
|
|||
|
try {
|
|||
|
const response = await fetch(url, {
|
|||
|
method: 'POST',
|
|||
|
headers: {
|
|||
|
'Accept': 'application/json'
|
|||
|
},
|
|||
|
body: formData
|
|||
|
});
|
|||
|
|
|||
|
if (!response.ok) {
|
|||
|
const errorText = await response.text();
|
|||
|
throw new Error(`HTTP error! Status: ${response.status}, Message: ${errorText}`);
|
|||
|
}
|
|||
|
|
|||
|
const result = await response.json();
|
|||
|
document.getElementById('result').innerHTML = `<pre>${JSON.stringify(result, null, 2)}</pre>`;
|
|||
|
} catch (error) {
|
|||
|
document.getElementById('result').innerHTML = `<pre>${error}</pre>`;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
async function sendPostJsonRequest() {
|
|||
|
const username = document.getElementById('post-username-json').value;
|
|||
|
const password = document.getElementById('post-password-json').value;
|
|||
|
const url = `http://127.0.0.1:8888/api/test/parse_json`;
|
|||
|
|
|||
|
const jsonData = {
|
|||
|
username: username,
|
|||
|
password: password
|
|||
|
};
|
|||
|
|
|||
|
try {
|
|||
|
const response = await fetch(url, {
|
|||
|
method: 'POST',
|
|||
|
headers: {
|
|||
|
'Accept': 'application/json',
|
|||
|
'Content-Type': 'application/json'
|
|||
|
},
|
|||
|
body: JSON.stringify(jsonData)
|
|||
|
});
|
|||
|
|
|||
|
if (!response.ok) {
|
|||
|
const errorText = await response.text();
|
|||
|
throw new Error(`HTTP error! Status: ${response.status}, Message: ${errorText}`);
|
|||
|
}
|
|||
|
|
|||
|
const result = await response.json();
|
|||
|
document.getElementById('result').innerHTML = `<pre>${JSON.stringify(result, null, 2)}</pre>`;
|
|||
|
} catch (error) {
|
|||
|
document.getElementById('result').innerHTML = `<pre>${error}</pre>`;
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|
|||
|
</body>
|
|||
|
</html>
|