以下代码适用于我:
var webProxy = WebProxy.GetDefaultProxy();
webProxy.UseDefaultCredentials = true;
WebRequest.DefaultWebProxy = webProxy;
Run Code Online (Sandbox Code Playgroud)
不幸的是,WebProxy.GetDefaultProxy()已被弃用.我还应该做什么?
(在部署中不允许使用app.config设置defaultProxy设置)
以下在我的机器上工作正常,不使用Web代理.
return Invoke-RestMethod
-Uri $server$url
-ContentType $contentType
-Headers $headers
-Method $method
-UseDefaultCredentials
Run Code Online (Sandbox Code Playgroud)
注意:这$server$url是一个https地址,类似于https://somewhere.example.com/api/data
现在我试图让它在企业环境中工作,但我收到401错误.
我认为这是因为有一个使用proxy.pac文件定义的公司代理.我已经确认我可以$server$url从Internet Explorer 获取URI.要使Invoke-RestMethod命令使用相同的设置,我需要做什么?
我试过添加-proxy参数
$proxy = [System.Net.WebRequest]::GetSystemWebProxy()
$proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials
return Invoke-RestMethod
-Uri $server$url
-ContentType $contentType
-Headers $headers
-Method $method
-UseDefaultCredentials
-Proxy $proxy
-ProxyUseDefaultCredentials
Run Code Online (Sandbox Code Playgroud)
但是-Proxy参数期望URI不是IWebProxy对象.