如何在PowerShell 中封装网络请求的客户端类型(userAgent)

要求powershell的版本至少是3.0以上。

在我们使用PowerShell这个Windows工具的时候,也许会遇到怎么才能让在PowerShell窗口中发起的Http网络请求模拟一个真实的浏览器的问题。而这其中有两个必须知道的命令:invoke-webrequest和invoke-restmethod。因为只有这两个名封装了(-UserAgent)参数。可以为Web请求指定用户端请求类型。 UserAgent字符串具有“兼容性(平台;操作系统;文化)应用程序”格式,默认情况下,PowerShell 3.0在我的Windows7上将自身标识为“ Mozilla / 5.0(Windows NT; Windows NT 6.1; en-US)” 。

这时,我们如果要自定义用户代理字符串,可以指定什么类型的值呢?那就涉及到了[Microsoft.PowerShell.Commands.PSUserAgent]这个类的静态属性,它提供了一些预配置的值:

PS E:\> [Microsoft.PowerShell.Commands.PSUserAgent].GetProperties() |Select-Object Name, @{n='UserAgent';e={ [Microsoft.PowerShell.Commands.PSUserAgent]::$($_.Name) }}

Name             UserAgent                                                                                                           
----             ---------                                                                                                           
InternetExplorer Mozilla/5.0 (compatible; MSIE 9.0; Windows NT; Windows NT 10.0; en-US)                                              
FireFox          Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) Gecko/20100401 Firefox/4.0                                         
Chrome           Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.500.0 Safari/534.6
Opera            Opera/9.70 (Windows NT; Windows NT 10.0; en-US) Presto/2.2.1                                                        
Safari           Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16   

我想大家应该知道怎么利用它了已经。

$userAgent = [Microsoft.PowerShell.Commands.PSUserAgent]::Chrome

Invoke-WebRequest http://baidu.com   -UserAgent $userAgent

invoke-restmethod 就不会出现这个安全警告。

学以致用。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值