感谢阅读
我正在尝试使用Powershell的“Invoke-WebRequest”连接网站。
事实是我尝试连接的网站使用cookies。以下是该网站的工作方式:
在加载日志形式时,服务器为客户端提供JSESSIONID(会话令牌)。当客户提交他的数据时,他会发送他的会话令牌。
如果连接成功,则服务器应答新的会话令牌。我可以从我的Web浏览器连接,在开发工具的网络选项卡中,我可以看到:
这是我的问题,有没有人知道如何在PowerShell上同时发送和读取cookie? (如果更容易,我可以使用另一个cmdlet)
这是我的代码:
#parameters settings
$url="https://mywebsite.com/directory/connect"
$domain="mydomain";$email="myemail@email.com"; $pw="uncryptedPWsentToServer"
$userAgent="Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
#I wasn't on a "supported" web browser according the server, so it is the solution I chose.
#Here I save the first cookie with -SessionVariable
$R1=Invoke-WebRequest -Uri $url -UserAgent $userAgent -SessionVariable SV
#Here I send the credentials (email + PW) with the cookie I previously saved
$R2=Invoke-WebRequest -Uri $url -Body ("domain="+$domain+"&email="+$email+"&password="+$pw+
"&action=authenticate") -Method POST -UserAgent $userAgent -WebSession $SV
理想的是:
$R2=Invoke-WebRequest -Uri $url -Body ("domain="+$domain+"&email="+$email+"&password="+$pw+
"&action=authenticate") -Method POST -UserAgent $userAgent -WebSession $SV -SessionVariable
SV2
为了发送$ SV作为第一个cookie,并在$ SV2中保存新的cookie。 不幸的是,PowerShell不理解我在同一中使用 -WebSession cmdlet和 -SessionVariable cmdlet Invoke-WebRequest cmdlet。
如果你们中的一些人知道如何解决这个问题,我找了一个解决方案,但大多数时候我只找到了如何发送或保存cookie,而不是同时发送或保存...
谢谢你的阅读!
最大