1
cUrl
(実際のcUrl)が動作する理由は誰でも説明できますが、Invoke-WebRequest
はありませんか?同じマシン、同じ変数。私には、Artifactoryをjfrogするためにファイルをアップロードして、両方が同じことをしているように見えます。cUrlとInvoke-WebRequest
$headers = @{
'X-JFrog-Art-Api' = $apiKey
"Content-Type" = "application/json"
"Accept" = "application/json"
}
Invoke-WebRequest -InFile $file -Method Put -Uri "$ARTIFACTORY_HOST/third-party/test/readme.md" -Headers $headers -Verbose
このPowerShellは機能しません。
curl -T readme.md "${ARTIFACTORY_HOST}/third-party/test/readme.md " \
-H "X-JFrog-Art-Api: ${apiKey}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
currlが機能します。
PowerShellは間違っTLSバージョンにPowerShellのデフォルト設定をオンにし、具体的Invoke-WebRequest
の前に、すべてのことを入れて1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
を使用するように指示する必要があり
Invoke-WebRequest : The underlying connection was closed: An unexpected error occurred on a send.
At line:1 char:1
+ Invoke-WebRequest -InFile $file -Method Put -Uri "https:// ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
バックスラッシュは、彼がダウンする方法であり、PowerShellではなくcUrlにあります。 Artifactoryのログには何が表示されますか?あなたはArtifactoryのログに何かが見えますか、またはReqeustがまったくそれに達していませんか? – Ariel
@TessellatingHecklerアリエルが正しく私の記事を読んで特定したように、バックスラッシュはbash用です。私はPowerShellでバッククイックを使っていません。 私は自分自身で答えを見つけました。 PowerShellはTLS1.0をネゴシエートします。 –