Powershell[IInvoke-WebRequest]是否可以从某个点复制会话,然后从保存状态重新使用会话



Powershell[Invoke WebRequest]是否可以从某个点复制Session,然后从保存的状态重新使用会话?

我登录并完成完整的请求没有问题。

问题是,我应该执行数百个类似的请求,为了做出选择,我为每个参数发送一个单独的post请求(有八个post请求(,并且我必须依次执行这些请求。

前四个对每个人来说都是相同的,所以,在这四个请求之后,是否可以将会话状态保存在变量的副本中,然后使用它?

我试着用复制会话$sessionAfterBasicRequest=$session.PSObject.Copy((但不起作用

也许我错过了一些基本的东西。。。

我很难理解您要做什么,但我认为您希望为这么多请求维护一个会话。

请参阅Invoke-WebRequest的此示例,解释如何在使用`InvokeWebRequest时维护有状态web服务的会话。我将为子孙后代重复下面的内容,因为这个例子已经解释了正在发生的事情:

$Body = @{
User = 'jdoe'
password = 'P@S$w0rd!'
}
$LoginResponse = Invoke-WebRequest 'https://www.contoso.com/login/' -SessionVariable 'Session' -Body $Body -Method 'POST'
$Session
$ProfileResponse = Invoke-WebRequest 'https://www.contoso.com/profile/' -WebSession $Session
$ProfileResponse

Invoke-WebRequest的第一个调用发送登录请求。该命令为-SessionVariable参数的值指定一个值"Session",并将结果保存在$LoginResponse变量中。命令完成后,$LoginResponse变量包含BasicHtmlWebResponseObject$Session变量包含WebRequestSession对象。这会将用户登录到网站。

$Session的调用本身显示变量中的WebRequestSession对象。

Invoke-WebRequest的第二次调用获取用户的配置文件,该配置文件要求用户登录到站点。存储在$Session变量中的会话数据用于向登录期间创建的站点提供会话cookie。结果保存在$ProfileResponse变量中。

$ProfileResponse的调用本身显示变量中的BasicHtmlWebResponseObject

最新更新