You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将JSON格式HTTP请求文件转换为标准raw原始请求?

awk实现可行性与难度说明

awk完全可以实现该转换需求,难度根据你对JSON格式兼容性的要求有所区分:

  • 如果你手上的JSON文件格式和你给出的示例完全统一、无变体,写硬匹配的awk脚本难度很低,几十行代码即可实现,无需额外依赖
  • 如果需要兼容任意合法的同结构JSON,只需使用gawk的JSON解析扩展,实现难度也属于中等偏下,无需复杂逻辑

适配示例格式的awk转换脚本

# 运行需使用gawk,保存为json2http.awk
BEGIN {
    RS="}"
    ORS=""
}
# 提取并拆分URL
/"http/ {
    url_raw = $0
    gsub(/.*"http:\/\/|".*/, "", url_raw)
    split(url_raw, url_parts, "/")
    host = url_parts[1]
    req_path = "/"
    for (i=2; i<=length(url_parts); i++) {
        req_path = req_path url_parts[i]
        if (i < length(url_parts)) req_path = req_path "/"
    }
}
# 提取请求方法
/"method":/ {
    req_method = $0
    gsub(/.*"method": "|",.*/, "", req_method)
}
# 提取请求头
/"Accept":|Accept-Encoding|Accept-Language|Connection|Upgrade-Insecure-Requests|User-Agent/ {
    h_key = $0
    gsub(/.*"|":.*/, "", h_key)
    h_val = $0
    gsub(/.*": "|",?\n.*/, "", h_val)
    header_map[h_key] = h_val
}
# 提取请求参数
/"params":/,/\]/ {
    if ($0 ~ /".*"/ && $0 !~ /params/) {
        param = $0
        gsub(/.*"|".*/, "", param)
        param_arr[++param_cnt] = param
    }
}
END {
    # 输出请求行,行尾带\r\n
    printf "%s %s HTTP/1.1\r\n", req_method, req_path
    # 输出Host头
    printf "Host: %s\r\n", host
    # 拼接POST表单
    req_body = ""
    for (i=1; i<=param_cnt; i++) {
        if (req_body != "") req_body = req_body "&"
        req_body = req_body param_arr[i] "=a" # 此处参数值可按需修改
    }
    # 输出POST专属头
    if (req_method == "POST") {
        printf "Content-Type: application/x-www-form-urlencoded\r\n"
        printf "Content-Length: %d\r\n", length(req_body)
    }
    # 输出原有请求头
    for (k in header_map) {
        printf "%s: %s\r\n", k, header_map[k]
    }
    # 输出头和体之间的空行
    printf "\r\n"
    # 输出请求体
    if (req_body != "") {
        printf "%s\r\n", req_body
    }
}

使用方法

执行命令:gawk -f json2http.awk 输入文件.json > 输出请求.raw,即可生成符合要求的raw HTTP请求文件。


相关转换工具推荐

  • Burp Suite:支持自定义格式批量导入请求数据,可直接导出标准raw HTTP请求,适合安全测试场景下的批量处理需求
  • 本地Python脚本:用内置json、urllib库实现转换,容错性比awk更高,适合JSON格式存在变体、或者需要自定义参数值的复杂场景
  • 开源本地转换工具:可搜索适配该场景的JSON转HTTP raw开源项目,本地部署使用,避免敏感请求数据上传公网

内容的提问来源于stack exchange,提问作者Emad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 21:48:01