关于我之前的问题,“PowerShell Invoke-Webrequest与网站不兼容?”由Tessellating Heckler成功回答,我还有一个问题。如果我想继续下一步,只需选择“交付”选项,Fiddler会显示目标网址:
“https://order.swisschalet.com/order/order/setup/how/save?preventCache=1476633843277”
在PowerShell中,如何获取和存储似乎随机生成的“preventCache”数字?如果我尝试发布到“https://order.swisschalet.com/order/order/setup/how/save”,则无效。此外,有趣的是,当您键入$ a.forms.action时,这不是可用的“操作”之一(再次参见上一个解决方案)。如果我尝试以“order.swisschalet.com/order/order/setup/complete”
开头的操作响应似乎没问题,但在响应机构中找不到实际的进展。
仅供参考:在浏览器中执行此操作然后查看Fiddler中的JSON响应时,可以看到“message =成功设置服务模式”。无论我通过PowerShell做什么,我都无法得到这个。
我想,就像上一次对此的答案相对简单而且我再次错过它,但我无法超越这一点。如果可以,那么我相信其他一切都会有意义。
感谢您的帮助,因为这让我发疯了!
原始代码:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 # This is required so that HTTPS requests won't fail with Invoke-WebRequest
$r = Invoke-WebRequest -Uri https://order.swisschalet.com -SessionVariable sc
$form = @{
delegate='login'
id='null'
mode='save'
target='#form-login'
email='email@example.com'
password='password'
}
$a = Invoke-WebRequest -Uri "https://order.swisschalet.com/order/auth/index" -WebSession $sc -Method POST -Body $form