如何获取从 Invoke-RestMethod 返回 400 Bad Request 的 Web 请求正文

2024-03-09

当我运行以下语句时

Invoke-RestMethod "https://api.mysite.com/the/endpoint" `
    -Body (ConvertTo-Json $data) `
    -ContentType "application/json" `
    -Headers $DefaultHttpHeaders `
    -Method Post

端点返回400 Bad Request,这会导致 PowerShell 显示以下不太有用的消息:


Invoke-WebRequest : The remote server returned an error: (400) Bad Request.
At line:1 char:1
+ Invoke-WebRequest "https://api.mysite.com/the/endpoint" -Body  ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand  

如何获取响应正文,这可能会告诉我发送的请求出了什么问题?


PowerShell 存在一个已知问题Invoke-WebRequest and Invoke-RestMethod当状态代码为错误(4xx 或 5xx)时,shell 会吃掉响应正文。听起来您正在寻找的 JSON 内容就是以这种方式消失的。您可以使用以下命令在 catch 块中获取响应主体$_.Exception.Response.GetResponseStream()

    try {
    Invoke-RestMethod "https://api.mysite.com/the/endpoint" `
        -Body (ConvertTo-Json $data) `
        -ContentType "application/json" `
        -Headers $DefaultHttpHeaders `
        -Method Post
    }
    catch {
        $streamReader = [System.IO.StreamReader]::new($_.Exception.Response.GetResponseStream())
        $ErrResp = $streamReader.ReadToEnd() | ConvertFrom-Json
        $streamReader.Close()
    }

    $ErrResp
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取从 Invoke-RestMethod 返回 400 Bad Request 的 Web 请求正文 的相关文章

  • REST - 复杂的应用程序

    我正在努力将 RESTful 原则应用到我正在开发的新 Web 应用程序中 特别是 为了实现 RESTful 每个 HTTP 请求本身都应该携带足够的信息 以便其接收者对其进行处理 从而与 HTTP 的无状态性质完全一致 该应用程序允许用户
  • 轻松的反应

    我有一个与这里描述的类似的案例 动态更改RESTEasy服务返回类型 https stackoverflow com questions 3786781 dynamically change resteasy service return
  • powershell stdin 管道和重定向

    你好 我一直在制作一个小的跨平台脚 本 我可以将其卷曲并通过管道传输到bash和Powershell中 基本思想是服务器向解释器发送一个命令 然后它给出一个命令将所有输出重定向到标准输出 bash 中的一个例子是 some commands
  • Ruby on Rails REST 设计问题 - 在账户之间转账

    我有一个 Account 类 想要实现转账屏幕以允许用户在 2 个账户之间转账 我将如何实现这种 RESTful 方式 我有标准帐户和休息操作 那很好 但我该如何实现转移呢 通常我只会向帐户控制器和相应的视图添加一个名为 transfer
  • 具有不同数量查询参数的两种 GET 方法:REST

    我有一个 Rest 端点类 如下所示 Path sports public interface SportsEndpoint GET List
  • launch.json 中不允许使用属性 env [VSCode]

    我所做的就是在 VS 中初始化一个模板 Azure Functions 项目 当我尝试通过设置运行配置环境变量时launch json VS直接警告我这是不 允许的 此外 即使当我尝试运行我的 ps1无论如何 对于 env 来说 它不起作用
  • [Regex]::Replace() 和 -replace 有什么区别?

    我明白了之间的区别 Replace and replace 但是什么是 replace and Regex Replace 我测试了以下两个代码 但对我来说结果完全相同 我还提到了 PowerShell Cookbook O reilly
  • Mongodb shell mongo:通常只允许每个套接字地址(协议/网络地址/端口)使用一次。对于套接字:0.0.0.0:27017

    前两天还好好的 现在mongod不起作用 甚至echo ps A grep mongo没有打印任何内容 但它警告错误 每个套接字地址只有一种用途 怎么杀掉它 我也尝试过不同的随机端口 他们怎么可能也失败呢 D mongodb win32 x
  • Web 服务应该是事务性的吗?

    我正在研究为应用程序编写网络服务 在此应用程序中 我们在事务中执行所有操作 因为 工作单元 通常不是单个实体 而是跨越多个表的多个实体 在某些情况下 我们想要 全有或全无 而交易是非常有意义的 然而 我不太确定如何在网络服务中执行此操作 也
  • 使用嵌套的 hashmap 参数发送 volley 请求

    我正在使用 android volley 框架向我的服务器发送 jsonobject 请求 get 请求工作正常 现在我想发送一个带有请求参数的 post 请求 该请求参数是嵌套的 hashmap 我重写 getparams 方法 但它期望
  • 通过powershell运行ADB命令

    所以我尝试通过 powershell 脚本运行一些 ADB 命令 这是我正在尝试做的一个简单示例 adb shell echo in adb shell su root echo you are now root ls cd data da
  • 将 Powershell 输出转换为 Markdown 文件

    我有以下代码 xmlFile C Users kraer Desktop bom xml xml xml Get Content xmlFile xml bom components component ForEach Object fin
  • REST URI 和对象上的操作,可以进行评论、标记、评级等

    我正在为我的公司研究一种 Web API 看起来我们可能会实现一个 RESTful API 我现在已经阅读了几本关于此的书籍 O Reilly 的 RESTful Web 服务 似乎最有用 并为可以评论 标记和评级的对象提出了以下一组 UR
  • 如何将目录及其子目录中的所有 PDF 文件复制到一个位置?

    如何全部复制PDF文件从目录及其子目录到单个目录 实际上还有更多的文件 并且深度有些任意 假设四个目录的最大深度是公平的 我想这些文件需要重命名 如果a pdf例如 位于多个目录中 因为我会adding https ebooks stack
  • 将带有星号的注册表项传递给测试路径

    我想通过以下方式运行此注册表路径Test Path在 PowerShell 中 但它包含一个星号 该星号在注册表中有效 但在 Windows 路径中无效 问题是 当我通过它时 Test Path将星号视为通配符 因此这需要非常非常长的时间
  • 如何根据域名更改视图格式

    我想知道是否有任何方法可以根据域名更改相同 Rails 应用程序的视图格式 例如 www domain com gt respond to format html api domain com gt respond to format xm
  • powershell Invoke-WebRequest WebSession 不起作用

    我无法让以下代码工作 它似乎已登录 但随后返回带有 response 的登录页面 我猜这与回发有关 有办法解决这个问题吗 谢谢 login Invoke WebRequest Uri http www sqlpass org UserLog
  • Chocolatey 无法使用 PowerShell cmdlet

    所以 我开始使用巧克力了 但是 我注意到 cmdlet 不起作用 例如 如果尝试使用 choco 命令执行任何操作 前任 choco install vlc 它工作得很好 但是 如果我尝试使用旧的 cmdlet 前任 Install Pac
  • Wiremock:如何匹配没有特定属性的 JSON 请求?

    我正在尝试模拟一个在 POST 中接受 JSON 正文的 API 调用 它有两种可能的响应 如果身体含有SearchCenter属性 回答 A 如果正文不包含SearchCenter 回答B In the 请求匹配 http wiremoc
  • PowerShell 中的 ProcessStartInfo 和进程 - 身份验证错误

    我有使用 ProcessStartInfo 和 Process 调用另一个脚本并返回该脚本的输出的代码 不幸的是 我遇到了错误 并且不确定如何解决这些问题 script1 ps1 abc args startInfo NULL proces

随机推荐

  • Base64:空间使用量最坏的可能增加是多少?

    如果服务器收到 Base64 字符串并希望在转换之前检查其长度 则假设它希望始终允许最终字节数组为 16KB 当转换为 Base64 字符串 假设每个字符一个字节 时 16KB 字节数组可能会变成多大 Base64 将每组三个字节编码为四个
  • 如何在 .NET Core 中以编程方式从 nuget 下载 nupkg 包?

    在过去的 NET Framework 中 我使用此示例以编程方式使用 nuget 以编程方式玩转包 http blog nuget org 20130520 Play with packages html NET Core 是否有等效的源
  • 删除大文本文件中的所有重复项

    我真的被这个问题难住了 因此我已经停止工作一段时间了 我处理的数据量非常大 我每周都会收到大约 200GB 的 txt 数据 数据范围最多可达 5 亿行 其中很多都是重复的 我猜只有 20GB 是独一无二的 我制作了几个自定义程序 包括哈希
  • 区间范围树数据结构C++

    我有一个要求 我必须根据某些属性值更新图形前端的颜色 属性值有不同的范围 比如说 30到 45 60到 80等等 所以 我需要一个数据结构来存储这些范围 预填充它们 并且当我确定该点时 我想知道该点在 O 1 时间或 O 1 时间内落在的范
  • 如何将列数据复制到另一个表中,并且两个表上都存在公共列数据?

    我想将两列的数据复制到另一个有很多列的表中 并且两个表上都有一个公共列 这是我的表格 Table1 身份证 第 1 列 列2 1 13 12 2 8 3 3 7 10 Table2 身份证 第 1 列 列2 第 3 栏 第 4 列 1 0
  • 打开终端时出现 Bash 错误 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我最近使用以下命令在我的 mac 上安装了 Ruby brew install rbenv ruby build 然后我被指示输入
  • 从线程导入模块不起作用

    下面的代码失败并出现 NameError 代码有什么问题吗 如何在后台线程中导入模块 import threading def background imports from time import time thread threadin
  • pandas直方图绘图错误:ValueError:num必须是1 <= num <= 0,而不是1

    我正在从 pandas 数据框中绘制一列的直方图 matplotlib notebook import matplotlib pyplot as plt import matplotlib df hist column column A b
  • Swagger UI 在部署时显示错误(验证)

    我的应用程序中嵌入了 swagger ui 当我在本地运行节点应用程序时 UI 工作得很好 但是 当我将 UI 部署到 真实 服务器时 我在 swagger ui 的右下角收到错误图像 我确信我正在做的事情把事情搞砸了 但我不知道 当我通过
  • 在 Javascript 中迭代 JSON 字符串的最快方法

    我一直在使用 jQuery 框架的 each 来迭代通过 AJAX 调用收到的 JSON 字符串 现在这个字符串有时会非常大 导致 IE6 7 8 抓取 我想知道是否有更快的方法来迭代整个数据 感谢您的时间 使用常规的 javascript
  • AttributeError:“WSGIRequest”对象在 OAuth2Decorator 上没有属性“request”

    我在 Google App Engine 上使用 Django 尝试访问 Google API 时遇到了问题 我想使用装饰器 如文档中所述 但我一遍又一遍地遇到相同的错误 AttributeError WSGIRequest object
  • Matter.js — 如何获取图像的尺寸来设置主体大小?

    我正在尝试以编程方式设置 Matter js 中链体的宽度和高度 不幸的是 我只得到 0 作为值 我不确定为什么 我的猜测是图像加载速度不够快 无法提供这些值 如何在加载图像之前加载这些尺寸 伪代码 阵列中的几具尸体 获取Array中每个图
  • IE8 字体大小切换为 :hover - 仅限日语

    我有一个多语言页面 但只有日语版本有问题 由于某些原因 在 IE8 中 当我将鼠标悬停在某个元素上时 同级元素的字体大小将会增加 减小 更奇怪的是 这种情况并不是每次悬停都会发生 有时我无法立即重现 我需要继续将鼠标悬停在页面同一区域的不同
  • 如何在 Jersey 中注册静态类?

    我有一个类 只能通过以下方式访问其中的静态方法 path注释并且没有公共构造函数 我的简化程序是 Path static class MyStaticClass private MyStaticClass Get Path time sta
  • Extjs:两个并行的ajax调用

    我的代码同时创建两个ajax调用 我认为并行性会更有效 如果两个调用都成功 我想加载一个表 这样做的正确方法是什么 var succeeded function callBackOne succeeded one true your oth
  • 撤消核心数据管理对象

    我有这个代码 Store store NSEntityDescription insertNewObjectForEntityForName Store store name My Company 现在 商店是在上下文中管理的 并且将在保存
  • 动态语言 - 我应该选择哪一种?

    动态语言正在兴起 而且数量很多 例如Ruby Groovy Jython Scala 静态 但具有动态语言的外观和感觉 等 我的背景是 Java SE 和 EE 编程 我想将我的知识扩展到这些动态语言之一 以便为未来做好更好的准备 但我应该
  • iOS 6 - BluetoothManager 框架 - “NSObject”未找到错误

    我的问题是重复的this https stackoverflow com questions 14069892 bluetoothmanager framework nsobject error lq 1一 但那个问题 正确地 被关闭为非建
  • 是否有任何工具可以检测不再使用的代码/功能?

    我们有许多应用程序正在运行 考虑所有应用程序都在 Java 平台上运行 我们需要检查过去 例如 3 个月 使用了哪些应用程序 以及在这些活动应用程序中 哪些部分 功能 以及使用频率 仍在使用中 那可能吗 这里的目标是检测不再与业务相关的应用
  • 如何获取从 Invoke-RestMethod 返回 400 Bad Request 的 Web 请求正文

    当我运行以下语句时 Invoke RestMethod https api mysite com the endpoint Body ConvertTo Json data ContentType application json Head