2017-11-18 17 views
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 
+0

バックスラッシュは、彼がダウンする方法であり、PowerShellではなくcUrlにあります。 Artifactoryのログには何が表示されますか?あなたはArtifactoryのログに何かが見えますか、またはReqeustがまったくそれに達していませんか? – Ariel

+0

@TessellatingHecklerアリエルが正しく私の記事を読んで特定したように、バックスラッシュはbash用です。私はPowerShellでバッククイックを使っていません。 私は自分自身で答えを見つけました。 PowerShellはTLS1.0をネゴシエートします。 –

答えて

1

で失敗します結構です。