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

PowerShell遍历文件夹提交文件内容到SOAP时Invoke-WebRequest报错如何解决

错误原因排查
  • 参数冲突:代码中同时将Get-Content读取的文件内容通过管道传递给Invoke-WebRequest,又显式指定了-Body参数,PowerShell参数绑定逻辑无法判断优先使用哪个值作为请求体,直接触发报错。
  • 请求体赋值错误:-Body参数传入的$dataAPI是Get-ChildItem返回的全部文件对象集合,并非当前遍历到的单个文件的内容,就算解决绑定问题也无法正常提交SOAP请求。
  • 文件读取逻辑缺陷:Get-Content不加-Raw参数时,会逐行读取内容返回字符串数组,直接作为SOAP请求体时会出现格式异常。
正确实现代码
# 读取指定目录下的所有文件
$fileList = Get-ChildItem -Path 'C:\Users\..\Output' -File
$uri = 'http://server-name.com:8080/name/name2'
$headers = @{
    "Content-Type" = "text/xml;charset=UTF-8"
    "SOAPAction" = "http://server-name.com:8080/name/name2"
}

ForEach ($file in $fileList) {
    # 读取单个文件完整内容为字符串
    $soapContent = Get-Content -Path $file.FullName -Raw
    # 提交请求
    $response = Invoke-WebRequest -Headers $headers -Method 'POST' -Body $soapContent -Uri $uri -UseDefaultCredential
    # 可选:输出请求结果确认提交成功
    Write-Host "文件 $($file.Name) 提交完成,响应状态码:$($response.StatusCode)"
}
补充说明

如果需要兼容旧版本PowerShell,可将Invoke-WebRequest替换为Invoke-RestMethod,参数保持一致即可,处理XML类型的SOAP响应时更便捷。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 10:36:03