如何解决curl -k 或 --insecure 相当于 Powershell Invoke-WebRequest 不起作用
我正在尝试执行:
$postParams = @{user='myUser';password='myPass'};
Invoke-WebRequest -Uri https://MYURL -Method POST -Body $postParams;
而且我总是被 403 禁止,在 ubuntu 或 git 终端中这就像一个魅力(使用 -k 或 --insecure):
curl -k -X POST "https://MYURL" -H "accept: */*" -H "Content-Type: application/json" -d "{ \"user\" : \"myUser\",\"password\" : \"myPass\"}"
或
curl -X POST "https://MYURL" -H "accept: */*" -H "Content-Type: application/json" -d "{ \"user\" : \"myUser\",\"password\" : \"myPass\"}" --insecure
经过一番研究,我尝试了两种解决方案:
解决方案#1:
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true };
$postParams = @{user='myUser';password='myPass'};
Invoke-WebRequest -Uri https://MYURL -Method POST -Body $postParams;
仍然被 403 禁止,但不起作用。
解决方案#2:
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true };
$postParams = @{user='myUser';password='myPass'};
Invoke-WebRequest -Uri https://MYURL -Method POST -Body $postParams;
add-type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class TrustAllCertsPolicy : ICertificatePolicy {
public bool CheckValidationResult(
ServicePoint srvPoint,X509Certificate certificate,WebRequest request,int certificateProblem) {
return true;
}
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy;
$postParams = @{user='myUser';password='myPass'};
Invoke-WebRequest -Uri https://MYURL -Method POST -Body $postParams;
也没有用,仍然被 403 禁止。
任何关于我可能做错了什么的线索?因为它在带有 -k
或 --insecure
的 ubuntu 和 git 终端中工作正常。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。