问题标签 [invoke-restmethod]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
42 浏览

json - 在PowerShell中序列化REST响应

我正在连接到 REST 服务

我得到了那种格式的回复

但我想以那种形式拥有它

在pythonic方法中,我可以这样做(包括“输出”键):

但在powershell中我不知道该怎么做。你能把我引向正确的方向吗?

使用来自 Invoke-RestMethod的完整$response.outputs进行编辑

$response.outputs 是

然后我可以转换为json,输出是:

这就是说waitingforguacamole解决方案即使有点棘手也可以工作(当然,感谢您的帮助!)

0 投票
1 回答
134 浏览

powershell - 如何正确使用 Jenkins PowerShell 步骤使用 Invoke-WebRequest 或 Invoke-RestMethod 调用 Web API

我在PowerShell命令步骤中使用Jenkins来调用Web API服务。我正在使用Invoke-WebRequest调用该服务。

此服务调用必须在 Jenkins 中进行,因为只有在其他 Jenkins 作业成功完成时我才需要这样做。

该服务可以运行几个小时。如果我没有TimeoutSec参数,则该步骤会在 Web API 完成之前以超时完成。如果我的参数值很大,比如 36000,那么 Web API 会正常完成,但步骤会持续 10 小时。其他参数与此问题无关。

我正在寻找一种在 Web API 完成后立即完成 Jenkins 步骤的好方法,而不是更早更晚。

0 投票
1 回答
143 浏览

powershell - 将 curl 转换为 Powershell Invoke-Restmethod

我在将 curl 命令转换为 Powershell Invoke-RestMethod 时遇到问题。我尝试了多种不同的方法,但收到错误消息:Invoke-RestMethod:远程服务器返回错误:(401)未经授权。

我需要为 powershell 转换的 curl 命令:

到目前为止我已经尝试过:

还:

我对他们俩都遇到了同样的错误

如果有人可以提供帮助,我将不胜感激

0 投票
0 回答
122 浏览

powershell - Invoke-RestMethod :底层连接已关闭:发送时发生意外错误

我正在尝试通过 powershell 运行 citrix api,但它给了我错误

底层连接已关闭:发送时发生意外错误。

这是我正在运行的代码。

与从 Postman 返回值的标头相同的 api

我检查了互联网并尝试了以下代码,但它也无法正常工作。

#1

#2

我不知道下一步该怎么做,请给出您的建议

0 投票
0 回答
39 浏览

powershell - Powershell:使用“System.Security.SecureString”时,Invoke-RestMethod 给了我“错误请求”

这是我的代码:

当我运行它时,我收到以下错误:

当我不使用参数“-AsSecureString”读取密码时,它可以工作。

有人可以告诉我这里有什么问题吗?

提前致谢。

0 投票
0 回答
39 浏览

powershell - PowerShell Start-Transcript 在 POST API 调用后停止记录

我有一个 PowerShell 脚本,它调用 Microsoft Graph 的 POST REST API 调用。在脚本的开头,我使用Start-Transcript -Append "$($MyInvocation.MyCommand.Name).log"cmdlet,在脚本的结尾,我使用Stop-Transcriptcmdlet,所以输出到控制台的所有内容都(嗯,应该)记录到文件中。

一切都记录到文件中,直到到达使用 cmdlet 的脚本部分Invoke-RestMethod并输出响应。

这是控制台输出:

以下是日志文件内容:

如您所见,尽管控制台这样做了,但日志文件不包含“Making API request(s)...”输出之外的任何内容。为什么是这样?

编辑:

完整代码:

编辑 2:我不确定我可以在此处包含哪些更多信息来帮助回答这个问题。我真的很感谢在这方面有经验的人的一些建议,干杯。

编辑 3:这个问题仍然可以由对 PowerShell 有一半体面的人回答。干杯。

0 投票
1 回答
29 浏览

powershell - 使用 powershell Invoke-RestMethod 获取多部分内容

我正在尝试在 powershell 中处理多部分 GET 调用,然后将它包含的 zipfile 保存到磁盘。我可以执行这个:

$response = Invoke-RestMethod -Uri $reqUrl -Method Get -Headers $headers

然后回显文件名和内容。为了保存文件,我尝试了这个:

$response = Invoke-RestMethod -Uri $reqUrl -Method Get -Headers $headers -ContentType "multipart/form-data" -Outfile result.zip

这会引发错误(无效操作)。所以我尝试了这个:

$response = Invoke-RestMethod -Uri $reqUrl -Method Get -Headers $headers -ContentType "application/zip" -Outfile result.zip

这会创建一个名为的文件,该文件result.zip无效。我知道响应是多部分的,所以虽然这不会引发错误,但我对文件无效并不感到惊讶,因为它必须包含所有部分。

我环顾四周,但我发现的只是使用 Invoke-RestMethod 来POST处理多部分内容的方法。

这是我尝试打开生成的 zip 文件时出现的错误:

在此处输入图像描述

我也尝试如下解码结果,但结果相同。

0 投票
1 回答
21 浏览

jenkins - Invoke-WebRequest 和 Invoke-RestMethod 不返回 System.Object[] 中的值

我正在用这些数据达到一个端点:

命令: $spaces = Invoke-RestMethod -Method 'Get' -Uri $uri -Headers $header

结果: @{Id=variableset-Projects-922; 变量=System.Object[];}

命令: $response = Invoke-WebRequest -URI $uri -Headers $header -Method 'Get' -UseBasicParsing

结果: { "Id": "variableset-Projects-922", "Variables": [] }

尽管| ConvertToJson -Depth 20对变量的结果进行测试总是以空数组的形式返回,但我在这里缺少什么?

我还在 Jenkins 管道中的 Groovy 脚本中编写了这个脚本。

0 投票
0 回答
27 浏览

json - 将 Curl 命令转换为 PowerShell Web 请求

我正在尝试对 curl 命令使用 invoke-webrequest 或 invoke-RestMethod ,但不能完全正确。起作用的 curl 命令是: curl.exe -X GET -H "Content-Type: application/json" --user 'blahblah:blahblah' https://ourdomain.learnupon.com/api/v1/users

我尝试过: $headers = @{ '--user' = 'blahblah:blahblah' } Invoke-RestMethod -Method Post -Uri 'https://ourdomain.learnupon.com/api/v1/users' -ContentType "application/json" -Headers $headers

并且: $post_values = @{'--user'='blahblah:blahblah'} Invoke-WebRequest -Uri https://ourdomain.learnupon.com/api/v1/users -Method POST -Body $post_value

任何帮助将不胜感激!

0 投票
0 回答
24 浏览

powershell - 什么可能导致在 Powershell 下使用 Invoke-RestMethod 的 Discord webhook 调用超时?

很长一段时间以来,我一直在托管一个脚本,它将游戏中的文本回显到我们的 Discord 服务器。大约 2 周前它基本上已经停止工作,只有偶尔的消息通过。我相信这与应用于 WinServer2012 的补丁有关,但我不确定。

我想我会在这里问其他人是否有过这种经历,或者我是否错过了对 webhook 的一些更改。

我想我已经消除了诸如文本文件被锁定之类的问题,或者 PS 等效的 tail 不知何故起作用。

似乎挂着的线是:

Invoke-RestMethod -Uri $hookUrl -Method Post -Body ($payload | ConvertTo-Json) -Headers @{'Content-Type' = 'application/json'; '用户代理' = 'myBot'}

在哪里

$hookUrl 是https://discord.com/api/webhooks/ ........

$payload 看起来像 @{content="Bot 说'这东西在吗?'"}

我看到:

Invoke-RestMethod : 操作已超时

在 C:[...]\post.ps1:93 char:5

  • Invoke-RestMethod -TimeoutSec 120 -Uri $hookUrl -Method Post -Body ($payload ...

  • CategoryInfo : NotSpecified: (:) [Invoke-RestMethod], WebException

  • FullyQualifiedErrorId : System.Net.WebException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand

我尝试过将 -TimeoutSec 120 添加到 Invoke-RestMethod 的建议,但没有任何改进。

我使用的是老式的 W2012 VPS,因为我需要托管一个 Windows 客户端来收集输入该脚本的文本……我曾经在 linux shell 中使用 curl 来执行此操作。