PowerShell利用Curl发送请求

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PowerShell利用Curl发送请求相关的知识,希望对你有一定的参考价值。

参考技术A PowerShell能干什么呢?PowerShell首先是个Shell,定义好了一堆命令与操作系统,特别是与文件系统交互,能够启动应用程序,甚至操纵应用程序;第二,PowerShell允许将几个命令组合起来放到文件里执行,实现文件级的重用,也就是说有脚本的性质;第三,PowerShell能够能够充分利用.Net类型和COM对象,来简单地与各种系统交互,完成各种复杂的、自动化的操作。

当我们习惯了windows的界面模式就很难转去命令行,甚至以命令行发家的git也涌现出各种界面tool。然而命令行真的会比界面快的多,如果你是一个码农。

接到需求分析bug,需要访问http。那台机器属于product,不允许装postman。我只能手动命令行来发请求。发现了内置的PowerShell中有curl命令。试了半天,总是命令不对,google发现这个curl是冒名顶替的,只是一个Invoke-WebRequest的alias。 参考 。

获取帮助:
get-help invoke-webrequest 或者 get-help invoke-webrequest -online
online参数会打开官方文档 powershell

可以看到curl也是别名,linux的wget也在其中,这样为习惯其他平台的用户提供了方便,但是用法上也稍有区别
基本用法介绍:

查看返回结果

内容筛选

返回结果

示例:

得到如下内容

会发现content内容被截断了,想要获取完整的content,可加参数 | Select -ExpandProperty Content

此时content内容是完整的

在 d:\content.txt 可看到输出的内容

其他用法:

将content内容转为对象 ConvertFrom-json

你可以使用 ConvertTo-Json 转回JSON格式

请求带有token的uri, 其实就是在header中添加authorization对象

到此,接口请求基本够用

执行

没有权限,也是安全机制,可 参考官网

用管理员权限打开powershell,并输入命令,然后选择y

说明:
Restricted 执行策略不允许任何脚本运行。
AllSigned 和 RemoteSigned 执行策略可防止 Windows PowerShell 运行没有数字签名的脚本

正常执行.

怎样像执行一个命令一样执行一个脚本,不用输入脚本的相对路径或者绝对路径,甚至*.ps1扩展名。
那就将脚本的执行语句保存为别名吧:

完美执行.
到此powershell的使用curl发送请求的需求基本满足.

以上是关于PowerShell利用Curl发送请求的主要内容,如果未能解决你的问题,请参考以下文章

CURL实现发送Get和Post请求(PHP)

curl实现发送Get和Post请求(PHP)

php 中使用cURL发送get/post请求,上传图片,批处理

php 中使用cURL发送get/post请求,上传图片,批处理

linux curl命令的重要用法:发送GET/POST请求,获取网页内容

需要curl命令到ElasticSearch for PowerShell