微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PowerShell Invoke-WebRequest 得到 403 Forbidden,但随后可以正常工作一段时间

如何解决PowerShell Invoke-WebRequest 得到 403 Forbidden,但随后可以正常工作一段时间

PowerShell 5.1 在 Win10 Pro 上,在家中,在 Comcast 上。
我想获取我的外部 IP。
我的第一个请求得到 403 Forbidden。
但是然后我只是重复请求(使用键盘 UpArrow),并且它有效 - 我按预期获得了我的 IP。 但是如果我暂停一段时间(几分钟),我会再次得到 403,然后它就可以工作了

PS>  (Invoke-WebRequest -uri "icanhazip.com").Content

Invoke-WebRequest : The Remote Server returned an error: (403) Forbidden.
At line:1 char:2
+ (Invoke-WebRequest -uri "icanhazip.com").Content
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest],WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

PS>  (Invoke-WebRequest -uri "icanhazip.com").Content
xx.xx.xx.xx  (obscured,but IP as expected)

我可以将 WebRequest 行放入文件调用它,但第一次失败,第二次有效。

我可以将 WebRequest 行两次放入一个文件中,然后调用它 - 它失败一次然后工作,就像在命令行中一样。 我在 PS 7 上没有遇到过这个问题,这让它看起来像是 PS5 的问题。但是当我使用“https://wtfismyip.com/text”时我也没有遇到这个问题,这让它看起来像是 icanhazip.com 的问题。

解决方法

Invoke-WebRequest 的默认方法是“Get”。指定方法为'Post',不返回错误。

$response = (Invoke-WebRequest -uri "icanhazip.com" -method Post).Content

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。