有人有通过PowerShell使用Websense API的经验吗?我需要将curl命令(我正在使用的命令)转换为Powershell,以便可以编写脚本。任何人都有任何有用的资源吗?我需要翻译的curl命令示例如下:
开始新交易:
curl -k -u <username>:<password> -X POST https://<ps_ip_address>:<port>/api/web/v1/categories/start
添加API管理的类别(HTTPS请求中的所有数据):
curl -k -u <username>:<password> -X POST https://<ps_ip_address>:<port>/api/web/v1/categories -d "{\"Transaction ID\":\"<transaction_ID_string>\",\"Categories\": [ {\"Category Name\": \"<name_string>\",\"Category Description\":\"<description_string>\",\"Parent\": <numeric_category_ID>}]}"
添加URL(HTTPS请求中的所有数据):
curl -k -u <username>:<password> -X POST https://<ps_ip_address>:<port>/api/web/v1/categories/urls -d "{\"Transaction ID\": \"<transaction_ID_string>\",\"Category ID\": <numeric_ID>,\"URLs\":[\"https://www.new_url.com/\"]}" --cacert PolApiServer.crt
提交交易:
curl -k -u <username>:<password> -X POST https://<ps_ip_address>:<port>/api/web/v1/categories/commit?TransactionID="<id_string>"
答案 0 :(得分:0)
我不会为您编写解释器,但是肯定有可能...或者您可以从PowerShell中运行 curl.exe
(显然,您需要安装在用于从PowerShell运行curl命令的计算机上> curl.exe
。
查看 Invoke-WebRequest
或 Invoke-RestMethod
-这两个函数都表现出类似curl的行为。
编辑:
因此,PowerShell中的 curl
命令只不过是 Invoke-WebRequest
的别名。运行此命令: Get-Alias -Definition Invoke-WebRequest
并查看输出。 Invoke-WebRequest
中的每个参数最多匹配一个 curl
开关。您所要做的就是查看 curl
文档,并将其参数与 Invoke-WebRequest
参数进行匹配。您要问的很多内容取决于您向其发送HTTP请求的API /站点( curl
和 Invoke-WebRequest
发送HTTP请求)。例如,向API /网站进行身份验证。如果该网站使用基本身份验证,则可以在PowerShell中执行以下操作:
Invoke-WebRequest-方法发布-Uri“ https://
.. curl -X
开关表示HTTP方法。. Invoke-WebRequest -Method
参数起着相同的作用。。听起来您真的只需要来阅读 Invoke-WebRequest
或 Invoke-RestMethod
-两者之间的唯一区别是它们给您的回报。
我认为您对如何区分和最终解释 curl
到 Invoke-WebRequest
感到困惑,这与您似乎对HTTP似乎很熟悉有关。要求。这两个命令都发送HTTP请求-它们只是使用不同的开关-如果您了解每个命令如何处理HTTP请求,则可以从 curl
解释为 Invoke-WebRequest
.. < / p>
更多信息在这里: Invoke-WebRequest 和调用RestMethod
仅在此站点上,还有大量示例说明如何将 curl
解释为 Invoke-WebRequest
/ Powershell
。需要重新了解HTTP请求以及 curl
如何处理它们以及 Invoke-WebRequest
处理它们的方式上的差异。
答案 1 :(得分:0)
有几种方法可以这样做。 1.下载curl.exe并将其指向一个变量,然后将命令传递给它
RewriteEngine On
RewriteRule .* public/index.php
另一个会是
$curlExe = "C:\download\curl-7.59.0\src\curl.exe"
& $curlExe -i -k -X POST -d '"{\"groupId\": xxxx}"' "https://site/site?access_token=zzzzzz" -s
我希望有帮助
答案 2 :(得分:0)
您可以使用 splatting 转换为 PowerShell 语法。
PS> curl.exe '-k',
'-u', '<username>:<password>',
'-X', 'POST ',
'https://<ps_ip_address>:<port>/api/web/v1/categories/start'
PS> curl.exe '-k',
'-u', '<username>:<password>',
'-X', 'POST ',
'https://<ps_ip_address>:<port>/api/web/v1/categories',
'-d', "{\"Transaction ID\":\"<transaction_ID_string>\",\"Categories\": [ {\"Category Name\": \"<name_string>\",\"Category Description\":\"<description_string>\",\"Parent\": <numeric_category_ID>}]}"
PS> curl.exe '-k',
'-u', '<username>:<password>',
'-X', 'POST ',
'https://<ps_ip_address>:<port>/api/web/v1/categories/commit?TransactionID="<id_string>"'
此命令将从 Windows 操作系统调用 curl.exe。 要知道这个文件在哪里运行
PS> Get-Command curl.exe