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

如何在PowerShell的Invoke-RestMethod中发送长HTML作为JSON请求体

解决PowerShell中HTML作为JSON请求体值的400错误问题

直接手动拼接JSON字符串时,HTML里的双引号、&、换行等特殊字符会破坏JSON语法结构,导致服务器无法正确解析请求,返回400错误。正确的做法是利用PowerShell的对象转JSON功能自动处理特殊字符转义:

步骤1:准备HTML内容

先把HTML内容读取到变量中(假设HTML存储在本地文件):

$htmlContent = Get-Content -Path "path/to/your/webpage.html" -Raw

如果HTML已经是字符串变量,直接使用即可。

步骤2:构建请求体对象并转为合法JSON

创建PowerShell哈希表对象,再用ConvertTo-Json自动转义特殊字符:

# 构建请求体对象
$requestBodyObject = @(
    @{
        key = "My-Key"
        value = $htmlContent
    }
)

# 转为JSON字符串,自动处理特殊字符转义
$jsonBody = $requestBodyObject | ConvertTo-Json -Depth 10

注:-Depth参数默认是2,如果HTML内容包含多层嵌套结构(比如内嵌的JSON数据),需要适当调高这个值确保转义完整。

步骤3:发送请求

用处理好的JSON作为请求体发送:

$headers = @{
    "Content-Type" = "application/json"
    "X-Auth-Email" = "your-email@example.com"
    # Cloudflare API需补充X-Auth-Key头
    "X-Auth-Key" = "your-api-key"
}

$response = Invoke-RestMethod -Uri 'https://api.cloudflare.com/client/v4/accounts/account_identifier/storage/kv/namespaces/namespace_identifier/bulk' `
    -Method PUT `
    -Headers $headers `
    -Body $jsonBody

原方法失败原因

手动编写JSON字符串时,HTML中的双引号会和JSON的字符串边界引号冲突,&、换行等字符也不符合JSON语法规范,导致生成的JSON格式无效。而ConvertTo-Json会自动将这些特殊字符转义为JSON允许的格式(比如双引号转成\",换行转成\n等),确保请求体符合JSON语法标准,服务器能正确解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 01:30:01