copy了一个接口的curl用来说明http请求的三个结构:请求行,请求头,请求体
文章目录
- 一、请求的curl报文示例
- 二、解析
- 1. 请求行(Request Line)
- 2. 请求头(Request Headers)
- 3. 请求体(Request Body)
- 三、关键点总结
- 四、curl如何从谷歌浏览器copy出来
一、请求的curl报文示例
curl 'https://fanyi.baidu.com/ait/text/translate' \-H 'Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7' \-H 'Acs-Token: 1754330406607_17fObd+ZwIyng2SQqNNTV5SQEyDhMFDL9geASYI5ei3mn7DDaoHjqS7tPLYEa3CBSlC/jnK8+NNCa76zs3fLAvrBiyWHvbzp7uGCzesjC3aYGzUWm6OaI+6yo+ZMrU1a3sQoNXM33wTPJQBtQA' \-H 'Connection: keep-alive' \-H 'Content-Type: application/json' \-b 'BA706FE3E604BE7D28:FG=1; BAIDU_WISE_UID=wa048_638; ZFY=XFp5brZjUxYWNiMA==; RT="z=1&dm=baidu.com&si=cfbf6646-c159-4337-8a68-bffdee4dfec1&ss=mdy6fe74&sl=5&tt=2nl&bcn=https%3A%2F%2Ffclog.baidu.com%2Flog%2Fweirwood%3Ftype%3Dperf&ld=q5md"' \-H 'Origin: https://fanyi.baidu.com' \-H 'Referer: https://fanyi.baidu.com/mtpe-individual/transText?query=%E6%AC%B2%E7%A9%B7%E5%8D%83%E9%87%8C%E7%9B%AE&lang=zh2en&ext_channel=Aldtype' \-H 'Sec-Fetch-Dest: empty' \-H 'Sec-Fetch-Mode: cors' \-H 'Sec-Fetch-Site: same-origin' \-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36' \-H 'accept: text/event-stream' \-H 'sec-ch-ua: "Not)A;Brand";v="8", "Chromium";v="138", "Google Chrome";v="138"' \-H 'sec-ch-ua-mobile: ?0' \-H 'sec-ch-ua-platform: "Windows"' \--data-raw '{"query":"欲穷千里目","from":"zh","to":"en","reference":"","corpusIds":[],"needPhonetic":true,"domain":"common","milliTimestamp":1754377653793}'
二、解析
1. 请求行(Request Line)
在 HTTP 请求中,请求行通常包含 方法、路径 和 协议版本。
对于这个 cURL 请求,请求行是隐式的(cURL 默认使用 GET,但实际由 --data-raw 推断为 POST):
http
POST /ait/text/translate HTTP/1.1
方法: POST(因为包含 --data-raw 请求体)
路径: /ait/text/translate
协议版本: HTTP/1.1(默认)
2. 请求头(Request Headers)
所有以 -H 开头的部分均为请求头,用于传递元信息。关键头如下:
头部字段 说明
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7 客户端接受的语言优先级
Acs-Token: … 认证令牌(长字符串,用于身份验证)
Connection: keep-alive 保持长连接
Content-Type: application/json 请求体为 JSON 格式
Origin: https://fanyi.baidu.com 请求来源域名
Referer: https://fanyi.baidu.com/… 请求来源页面 URL
User-Agent: Mozilla/5.0 (…) 客户端浏览器标识
accept: text/event-stream 期望服务器返回 SSE(Server-Sent Events)流
sec-ch-ua: … 浏览器品牌信息(用于 Client Hints)
Cookie(通过 -b 传递) 会话标识(如 BAIDUID_BFESS)
3. 请求体(Request Body)
通过 --data-raw 指定的 JSON 数据是请求体(仅 POST/PUT 等请求会有):
{"query": "欲穷千里目","from": "zh","to": "en","reference": "","corpusIds": [],"needPhonetic": true,"domain": "common","milliTimestamp": 1754377653793
}
作用: 向百度翻译接口提交待翻译的文本(query)、语言方向(from→to)等参数。
完整 HTTP 请求示例
POST /ait/text/translate HTTP/1.1
Host: fanyi.baidu.com
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
Acs-Token: 1754330406607_1754377653735_OCYbv3/qS05hTnBpnjle9UtcIr4fxS3OUUNKD+Wdy5+rNInp4vMpRdpbc7llFx084lt/oRLjtDopXxiJMBhBTpjnEOx5qlIyl0Ph4OiFw7LzERtODb+GaV60cgSPzLglJjI28nBjcpDiZoKa7veUSZVsCid9VSFkRuHnZdrjO3CKwipS0VzE2MLXR1Hfo+dFVAC7Ye8fxBVGpL/eO6+9dGVQzg5EzzhB/u7cIk0GrzCtmmmPCLhqwqpUC5kduBQoJgaGn1b05xfqHB2kH4U4FLA9e2vF/JXu5b9LlZWlcYIPH9WtfObd+ZwIyng2SQqNNTV5SQEyDhMFDL9geASYI5ei3mn7DDaoHjqS7tPLYEa3CBSlC/jnK8+NNCa76zs3fLAvrBiyWHvbzp7uGCzesjC3aYGzUWm6OaI+6yo+ZMrU1a3sQoNXM33wTPJQBtQA
Content-Type: application/json
Origin: https://fanyi.baidu.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36{"query":"欲穷千里目","from":"zh","to":"en","reference":"","corpusIds":[],"needPhonetic":true,"domain":"common","milliTimestamp":1754377653793}
三、关键点总结
-
请求行:由方法和路径组成(隐式体现在 cURL 中)。
-
请求头:控制请求行为(如认证、内容类型、来源等)。
-
请求体:携带实际数据(这里是翻译的文本和参数)。
如果需要重放此请求,可直接执行该 cURL 命令,或导入到 Postman 等工具中。