引言
前面的文章写了 Postman 自动加解密的方法,本篇文章分享一个可能大多数人都不知道的小技巧,使用 Postman 自动生成请求代码,支持多种语言,对于爬虫工程师和后端的小伙伴来说应该用的更多一些。
复制 curl
在浏览器的请求上点击右键,选择复制选项卡,选择以 cURL 格式复制,即可复制 cURL 格式的 Post 请求。
复制的 cURL 的数据如下:
curl 'https://httpbin.org/post' \
-X 'POST' \
-H 'accept: application/json' \
-H 'accept-language: zh-CN,zh;q=0.9' \
-H 'cache-control: no-cache' \
-H 'content-length: 0' \
-H 'dnt: 1' \
-H 'origin: https://httpbin.org' \
-H 'pragma: no-cache' \
-H 'priority: u=1, i' \
-H 'referer: https://httpbin.org/' \
-H 'sec-ch-ua: "Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"' \
-H 'sec-ch-ua-mobile: ?0' \
-H 'sec-ch-ua-platform: "macOS"' \
-H 'sec-fetch-dest: empty' \
-H 'sec-fetch-mode: cors' \
-H 'sec-fetch-site: same-origin' \
-H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36'
curl 导入 Postman
复制好 curl 之后,可以在命令行直接执行 curl 命令查看结果,也可以将其导入 Postman,方便后续修改请求重新发起请求。
点击 import 按钮,粘贴 curl 命令,即可自动生成一个 Postman 中正常的请求,方便后续修改请求
自动生成代码
Postman 有一个根据当前的请求自动生成代码的功能,在 Post 请求界面,点击 Code 按钮,可以打开代码片段生成窗口。
支持大多数语言,生成的 Python 代码片段如下:
import requests
url = "https://httpbin.org/post"
payload = {}
headers = {
'accept': 'application/json',
'accept-language': 'zh-CN,zh;q=0.9',
'cache-control': 'no-cache',
'content-length': '0',
'dnt': '1',
'origin': 'https://httpbin.org',
'pragma': 'no-cache',
'priority': 'u=1, i',
'referer': 'https://httpbin.org/',
'sec-ch-ua': '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"macOS"',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
生成的 JavaScript 代码片段如下:
const axios = require('axios');
let config = {
method: 'post',
maxBodyLength: Infinity,
url: 'https://httpbin.org/post',
headers: {
'accept': 'application/json',
'accept-language': 'zh-CN,zh;q=0.9',
'cache-control': 'no-cache',
'content-length': '0',
'dnt': '1',
'origin': 'https://httpbin.org',
'pragma': 'no-cache',
'priority': 'u=1, i',
'referer': 'https://httpbin.org/',
'sec-ch-ua': '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"macOS"',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36'
}
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
生成的 Java 代码片段如下:
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("https://httpbin.org/post")
.method("POST", body)
.addHeader("accept", "application/json")
.addHeader("accept-language", "zh-CN,zh;q=0.9")
.addHeader("cache-control", "no-cache")
.addHeader("content-length", "0")
.addHeader("dnt", "1")
.addHeader("origin", "https://httpbin.org")
.addHeader("pragma", "no-cache")
.addHeader("priority", "u=1, i")
.addHeader("referer", "https://httpbin.org/")
.addHeader("sec-ch-ua", "\"Chromium\";v=\"130\", \"Google Chrome\";v=\"130\", \"Not?A_Brand\";v=\"99\"")
.addHeader("sec-ch-ua-mobile", "?0")
.addHeader("sec-ch-ua-platform", "\"macOS\"")
.addHeader("sec-fetch-dest", "empty")
.addHeader("sec-fetch-mode", "cors")
.addHeader("sec-fetch-site", "same-origin")
.addHeader("user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36")
.build();
Response response = client.newCall(request).execute();
生成的代码片段都是复制即可用的,完全不用修改,对于调试工作绰绰有余了。
之前不知道这个功能的时候,我还每次都挨个复制 header 和 body,甚至还写了一个脚本来转换 header 为代码中可用的格式,效率很低哈哈。
总结
以上就是本次分享的请求转换小技巧,希望可以提升大家调试的效率。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。