最近在做一个开源产品(github地址:https://github.com/LizardByte/Sunshine) 的二次开发适配,我需要对指定页面发送特定的post或get请求。我想用windows自带的powershell来实现。
这个开源产品sunshine安装完成后通过https://ip:47990/ 登录(预设账户密码为:sunshine)

登录进去后有个发送pin码的页面(https://192.168.0.13:47990/pin) 我想实现的就是:通过powershell登录并在pin页面输入pin码(假设pin码为1234)并点击send按钮

我找到一段powershell代码用于发送post请求,可以实现登录。但我不知道如何增加发送pin码参数。powershell里有二个命令函数可用于发送post请求:Invoke-WebRequest 和 Invoke-RestMethod
$username = "sunshine"
$password = "sunshine"
$url = "https://192.168.0.13:47990/pin"
# 创建一个 WebRequest 对象
$req = [System.Net.WebRequest]::Create($url)
# 禁用 SSL 证书验证
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
# 设置 HTTP 请求头
$req.Headers["Authorization"] = "Basic $([System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($username + ":" + $password)))"
# 发送 HTTP 请求
$res = $req.GetResponse()
# 输出响应的内容
$reader = New-Object System.IO.StreamReader($res.GetResponseStream())
$result = $reader.ReadToEnd()
$reader.Close()
$res.Close()
Write-Output $result
下面是pin页面的post请求消息头:

这是sunshine安装完成后生成的pin.html页面文件里的pin码验证方法,看样子是使用post请求方法

有熟悉精通powershell的帮忙看看该怎么写,sunshine很小,安装文件仅16MB 安装后也只有60MB多,也有硬盘版,只要电脑是独显都可以安装运行,懂串流的可以用moonlight测试。大家写的powershell代码可以在Windows PowerShell ISE 里面先自行测试下。谢谢~!!