首页 > 系统相关 >【PowerShell】Invoke-WebRequest和Invoke-RestMethod

【PowerShell】Invoke-WebRequest和Invoke-RestMethod

时间:2023-10-20 10:04:59浏览次数:37  
标签:web Invoke RestMethod rest WebRequest https

## Public free Restful API URL  

## https://documenter.getpostman.com/view/8854915/Szf7znEe#intro


# Example01

# --------------------------------------------------------------

$url = "https://cat-fact.herokuapp.com/facts/"

$r = Invoke-WebRequest -Uri $url

$r.GetType()

$result = ConvertFrom-Json -InputObject $r.Content

$result.GetType()

$result[0]



# Example02

# --------------------------------------------------------------

$url1 = "https://api.apis.guru/v2/list.json"

$r1 = Invoke-RestMethod -Uri $url1


# Example03

# --------------------------------------------------------------

# Invoke-WebRequest vs. Invoke-RestMethod

当我们对某个网站的探索中,如果您没有相关的文档,使用Invoke-WebRequest 是一个很好的开始。

假设我们使用两个命令连接到同一个网站,

其中变量 $web 使用 Invoke-WebRequest ;

而 $Rest 使用 Invoke-RestMethod。

$url2 = "https://www.baidu.com"

$web = Invoke-WebRequest -Uri $url2

$rest = Invoke-RestMethod -Uri $url2

$web



PS C:\Users\Administrator> $web



StatusCode        : 200

StatusDescription : OK

Content           : <html>

                    <head>

                    	<script>

                      location.replace(location.href.replace("https://","http://"));

                    	</script>

                    </head>

                    <body>

                    	<noscript><meta http-equiv="refresh" content="0;url=http://www.baidu.com/"></...

RawContent        : HTTP/1.1 200 OK

                    Connection: keep-alive

                    Accept-Ranges: bytes

                    Content-Length: 227

                    Cache-Control: no-cache

                    Content-Type: text/html

                    Date: Mon, 17 Jan 2022 02:39:23 GMT

                    P3P: CP=" OTI DSP COR IVA OUR...

Forms             : {}

Headers           : {[Connection, keep-alive], [Accept-Ranges, bytes], [Content-Length, 227], [Cache-Control, no-cache]...}

Images            : {}

InputFields       : {}

Links             : {}

ParsedHtml        : mshtml.HTMLDocumentClass

RawContentLength  : 227





PS C:\Users\Administrator>

#>

$rest

<#

PS C:\Users\Administrator> $rest

<html>

<head>

	<script>

  location.replace(location.href.replace("https://","http://"));

	</script>

</head>

<body>

	<noscript><meta http-equiv="refresh" content="0;url=http://www.baidu.com/"></noscript>

</body>

</html>


PS C:\Users\Administrator>  
#>

$web.Content -eq $rest


PS C:\Users\Administrator> $web.Content -eq $rest

True


PS C:\Users\Administrator>  

# Invoke-RestMethod 更擅长处理 XML 和 JSON 结果,而 Invoke-WebRequest 更擅长处理直接的 HTML 结果。


【PowerShell】Invoke-WebRequest和Invoke-RestMethod_HTTP








标签:web,Invoke,RestMethod,rest,WebRequest,https
From: https://blog.51cto.com/mlxia/7946882

相关文章

  • 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2019 无法解析的外部符号 _main
    问题描述按照思路写好了C++的程序之后,表面上看起来没什么错误,也没有红点点的出现,但是运行起来,就发现,爆出来这样一个错误:问题解决看了半天,查了半天资料,发现是这里出现了问题(我真的~~~):习惯了首字母大写,这个就当成类来写了,后来突然醒悟,这个是main函数,首字母是要小写:运行成功......
  • 如何解决小程序打开授权报错openSetting:fail can only be invoked by user TAP gestu
    要解决这个问题,你需要在页面上为openSetting接口添加一个点击事件。根据微信小程序的文档,openSetting接口只能通过用户点击行为(如tap事件)来触发。以下是一个简单的示例代码:<!--index.wxml--><view><buttonbindtap="openSetting">打开授权设置</button></view......
  • 生成invoke脚本
    publicstaticvoidmain(String[]args)throwsNoSuchMethodException{//入参CmsModuleDTOqueryReq=newCmsModuleDTO();queryReq.setModuleScenario("新手");//getInvoke(入参,类名.class,方法名)StringinvokeCommand......
  • invokeMethod
    概述invokeMethod是Qt框架中的一个重要函数,用于将指定的函数调用安排到目标对象的事件队列中执行。这个函数允许在Qt应用程序中执行跨线程或跨对象的函数调用,确保线程安全和事件驱动的执行。函数签名boolQMetaObject::invokeMethod(QObject*obj,constchar*member,Qt::Con......
  • C# BeginInvoke实现异步编程
    C#BeginInvoke实现异步编程-CSDN博客https://blog.csdn.net/Nire_Yeyu/article/details/133203267 C#BeginInvoke实现异步编程BeginInvoke实现异步编程的三种模式:1.等待模式在发起了异步方法以及做了一些其他处理之后,原始线程就中断并且等异步方法完成之后再继续;eg:usingS......
  • HttpClient HttpClientHandler WebRequestHandler Explained 处理https请求
    Framework4.8的HttpClientHandler有ServerCertificateCustomValidationCallback所以处理https请求做如下操作:varhandler=newHttpClientHandler();varbaseUri=newUri(url);if(baseUri.Scheme.ToLower()=="https"){......
  • [转]C#Invoke和BeginInvoke应用详解
    最近,在研究Invoke的使用,但是真的是一头雾水,网上看了很多资料,感觉还是看不懂,因为对于入门级的小白,想像不出Invoke的应用场景,更谈不上如何用了?1、Invoke到底是什么?Invoke的本质只是一个方法,方法一定是要通过对象来调用的。一般来说,Invoke其实用法只有两种情况:Control的Invoke......
  • Spring HTTP Invoker
    参考:https://blog.csdn.net/asdluoliu/article/details/112847699概念SpringHTTPInvoker一种JAVA远程方法调用框架实现,原理与JDK的RMI基本一致,所以我们先跟其它JAVA远程方法调用实现做下简单比较。RMI:使用JRMP协议(基于TCP/IP),不允许穿透防火墙,使用JAVA序列化方式,使用于任何......
  • .NET:使用 P/Invoke 调用 C# 中的 Win32 DLL——本质上和动态加载DLL没有区别
    .NET:使用P/Invoke调用C#中的Win32DLL本质上和动态加载DLL没有区别!!!如下: 在.NET中执行非托管代码时,我们通常想要实现什么?假如是红队,一般想要运行原始的beaconpayload,在该payload中运行C#封装的本地代码。很长一段时间以来,最常见的做法是这样的:[DllImport("kernel32.dll"......
  • qt使用QMetaObject::invokeMethod异步调用或QTimer::singleShot解决很久才能显示界面
    https://blog.csdn.net/weixin_43935474/article/details/124922897//Load();//QMetaObject::invokeMethod(this,"Load",Qt::QueuedConnection);//无参数,QueuedConnection表示异步调用,等主线程QMetaObject::invokeMethod(this,"Load",Qt::QueuedConnectio......