使用 powershell 进行 http 请求
我希望使用 powershell 向网页发出 http 请求,这可能吗?如果可以,我该如何实现这一点?
我可以向 https 页面发出请求吗?我可以使用 bat 文件发出 http 请求,但不能使用 https,希望我可以使用 powershell 发出 https 页面请求。
I am looking to make http requests to web pages with powershell, is this possible and if so, how may I achieve this?
Can I make requests to https pages? I am able to make http requests with a bat file but not https, was hoping I could https page requests with powershell.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
您可以使用 .NET 框架提供的常用
WebRequest
和HttpWebRequest
类。除了与 PowerShell 的语法差异之外,它与使用 C# 中的相同类和 API 没有什么不同。
PowerShell v3 还带来了 Invoke-WebRequest 和其他一些功能。
You can use the usual
WebRequest
andHttpWebRequest
classes provided by the .NET framework.It's no different from using the same classes and APIs from C#, except for the syntactic differences to PowerShell.
PowerShell v3 also brings
Invoke-WebRequest
and a few others.试试这个:
WebClient.DownloadString 方法(字符串)
或在 PowerShell 3.0 中,
Invoke-WebRequest
Try this:
WebClient.DownloadString Method (String)
or in PowerShell 3.0,
Invoke-WebRequest
根据您正在执行的操作,您还可以使用
System.Net.WebClient
,它是HttpWebRequest
的简化抽象,请在此处查找差异:.NET 中的 WebClient 和 HTTPWebRequest 类之间有什么区别?
PS:使用 Powershell v3.0,您可以使用
Invoke-WebRequest
和Invoke-RestMethod
cmdlet,它们可用于类似目的Depending on what you are doing, you can also use
System.Net.WebClient
, which is a simplified abstraction ofHttpWebRequest
Look here for difference: What difference is there between WebClient and HTTPWebRequest classes in .NET?
PS: With Powershell v3.0, you have
Invoke-WebRequest
andInvoke-RestMethod
cmdlets which can be used for similar purposes如果所有其他方法都失败,请使用 http://curl.haxx.se 中的 Curl 。您可以设置所有内容,包括证书处理、POST 等。这并不微妙,但它可以工作并处理所有奇怪的情况;例如,您可以设置 --insecure 标志来忽略证书名称问题、过期或测试状态。
If all else fails, use Curl from http://curl.haxx.se . You can set everything, including certificate handling, POSTs, etc. Not subtle, but it works and handles all of the odder cases; e.g. you can set the --insecure flag to ignore certificate name issues, expiration, or test status.
您可以使用 Invoke-WebRequest cmdlet 创建 HTTP、HTTPS、FTP 和 FILE 请求。这非常简单,并且提供了很多可供选择的选项。
示例:要向 google.com 发出简单的 http/https 请求,
请参阅MSDN
You can create HTTP, HTTPS, FTP and FILE requests using Invoke-WebRequest cmdlet. This is pretty easy and gives many options to play around.
Example: To make simple http/https requests to google.com
More references can be found MSDN
此代码适用于 ASCII 和 ASCII。 powershell 中通过 https 的二进制文件:
在 Powershell 5.1.17134.1、Win 10 上测试
This code works with both ASCII & binary files over https in powershell:
Tested on Powershell 5.1.17134.1, Win 10
尝试这个 PowerShell 模块:https://github.com/toolkitx/simple-request
安装
安装模块-名称 SimpleRequest
然后你可以发送请求,如
请参阅 GitHub 详细介绍
Try this PowerShell module: https://github.com/toolkitx/simple-request
Install by
Install-Module -Name SimpleRequest
Then you can send requests like
Please refer to GitHub for detail introductions
该方法下载内容:
This method downloads the content: