Windows怎么用PowerShell发送HTTP请求_Windows如何用Invoke-RestMethod调用API接口【方法】-1

如果您需要在Windows系统中通过PowerShell与Web服务交互,可以直接使用内置的Invoke-RestMethod命令发起HTTP请求。以下是实现该功能的多种方法:

一、使用Invoke-RestMethod发送GET请求

Invoke-RestMethod默认以GET方式请求URL,并自动解析JSON或XML响应为PowerShell对象,适合调用返回结构化数据的API接口。

1、以管理员身份打开PowerShell窗口。

2、输入命令:Invoke-RestMethod -Uri “https://httpbin.org/get”,按回车执行。

3、观察返回结果,其中ResponseHeaders、Args等字段将以哈希表形式显示。

二、使用Invoke-RestMethod发送POST请求并传递JSON数据

当目标API要求提交JSON格式的请求体时,需将数据序列化为JSON字符串,并设置正确的Content-Type头。

1、构造请求体:$body = @{name=”test”; age=25} | ConvertTo-Json。

2、执行请求:Invoke-RestMethod -Uri “https://httpbin.org/post” -Method POST -Body $body -ContentType “application/json”。

3、确认响应中的json字段包含原始提交的数据内容。

三、使用Invoke-WebRequest替代Invoke-RestMethod获取原始响应

Invoke-WebRequest不自动反序列化响应体,适用于需检查原始HTTP状态码、响应头或非结构化响应内容的场景。

1、运行命令:Invoke-WebRequest -Uri “https://httpbin.org/status/404” -Method GET。

2、查看输出对象的StatusCode属性,确认返回值为404。

3、通过.Content属性访问原始响应正文,例如(Invoke-WebRequest -Uri "https://httpbin.org/get").Content。

四、添加认证头调用受保护的API

对于需要Bearer Token或Basic Auth的接口,必须在请求头中显式注入Authorization字段。

1、定义头部哈希表:$headers = @{“Authorization” = “Bearer abc123xyz”}。

2、执行带认证的请求:Invoke-RestMethod -Uri “https://api.example.com/data” -Headers $headers。

3、若使用Basic认证,先生成Base64编码凭据:$auth = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(“user:pass”)),再设为"Basic $auth"。

五、处理SSL证书错误或跳过验证

在测试环境或自签名证书服务器上,PowerShell可能因证书不受信任而拒绝连接,可通过临时策略绕过验证。

1、执行脚本块禁用证书验证:[Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}。

2、随后调用Invoke-RestMethod,例如:Invoke-RestMethod -Uri “https://self-signed.badssl.com/”。

3、操作完成后建议恢复默认策略:[Net.ServicePointManager]::ServerCertificateValidationCallback = $null。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。