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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...