1. FastAPI发起请求
2. curl发起请求
使用 curl 发送包含中文参数的 POST 请求
curl -X POST "http://127.0.0.1:8000/table?question=%E4%BD%A0%E5%A5%BD" -H "accept: */*"
-
curl 命令是用来发送 HTTP POST 请求的
在这个命令中,需要传递一个中文参数 question,值为“你好”。
为了确保 curl 正确处理中文参数,您需要对中文字符进行 URL 编码(也称为百分号编码)。您已经看到了 %E4%BD%A0%E5%A5%BD,这是“你好”的 URL 编码形式。 -
URL 编码
URL 编码是一种将特殊字符转换为可以安全地在 URL 中传输的格式的方法。对于中文字符,每个字符会被转换为一系列百分号 % 后跟两个十六进制数字的形式。“你好”会被编码为 %E4%BD%A0%E5%A5%BD。 -
详细解释
-X POST:指定请求方法为 POST。
“http://127.0.0.1:8000/table?question=%E4%BD%A0%E5%A5%BD”:这是完整的 URL,其中 question 参数的值已经被 URL 编码。
-H “accept: /”:添加一个 HTTP 头,指定服务器可以返回任何类型的响应。
自动生成 URL 编码
如果不想手动进行 URL 编码,可以使用 Python 脚本来生成 URL 编码:
import urllib.parse
chinese_string = "你好"# 中文字符串
encoded_string = urllib.parse.quote(chinese_string)# 进行 URL 编码
print(encoded_string) # 输出: %E4%BD%A0%E5%A5%BD
- 响应示例
curl -X POST "http://127.0.0.1:8000/table?question=%E4%BD%A0%E5%A5%BD" -H "accept: */*"
data: {"message": "\u4f60\u597d", "timestamp": "2024-11-22 16:09:19"}
data: {"message": "\u4f60\u597d", "timestamp": "2024-11-22 16:09:20"}
data: {"message": "\u4f60\u597d", "timestamp": "2024-11-22 16:09:21"}
data: {"message": "\u4f60\u597d", "timestamp": "2024-11-22 16:09:22"}
data: {"message": "\u4f60\u597d", "timestamp": "2024-11-22 16:09:23"}
data: {"message": "\u4f60\u597d", "timestamp": "2024-11-22 16:09:24"}
data: {"message": "\u4f60\u597d", "timestamp": "2024-11-22 16:09:25"}
data: {"message": "\u4f60\u597d", "timestamp": "2024-11-22 16:09:26"}
data: {"message": "\u4f60\u597d", "timestamp": "2024-11-22 16:09:27"}
data: {"message": "\u4f60\u597d", "timestamp": "2024-11-22 16:09:28"}
data: {"message": "\u4f60\u597d", "timestamp": "2024-11-22 16:09:29"}
data: {"message": "\u4f60\u597d", "timestamp": "2024-11-22 16:09:30"}
data: {"message": "\u4f60\u597d", "timestamp": "2024-11-22 16:09:31"}
data: {"message": "\u4f60\u597d", "timestamp": "2024-11-22 16:09:32"}
data: {"message": "\u4f60\u597d", "timestamp": "2024-11-22 16:09:33"}
: ping - 2024-11-22 08:09:34.400606+00:00
3. postman发起请求
4. 使用代码发起请求
import requests
url = "http://127.0.0.1:8000/table"
params = {"question": "\"你好\""}
headers = { "accept": "*/*"}
response = requests.post(url, headers=headers, params=params, stream = True)
print("\n Status Code:", response.status_code)
print("\n 响应内容:")
for line in response.iter_lines():
line_str = line.decode('utf-8')
print(line_str)