如何在PowerShell中使用curl命令?
我在PowerShell中使用如何在PowerShell中使用curl命令?,powershell,curl,jenkins,Powershell,Curl,Jenkins,我在PowerShell中使用curl命令,通过Jenkins作业在位桶拉取请求页面中发布注释。我使用下面的PowerShell命令来执行curl命令,但得到了下面提到的错误。谁能帮我把这件事做好吗 $CurlArgument="-u xxx@gmail.com:yyyy -X POST https://xxx.bitbucket.org/1.0/repositories/abcd/efg/pull-requests/2229/comments --data content=success" $
curl
命令,通过Jenkins作业在位桶拉取请求页面中发布注释。我使用下面的PowerShell命令来执行curl
命令,但得到了下面提到的错误。谁能帮我把这件事做好吗
$CurlArgument="-u xxx@gmail.com:yyyy -X POST https://xxx.bitbucket.org/1.0/repositories/abcd/efg/pull-requests/2229/comments --data content=success"
$CURLEXE='C:\Program Files\Git\mingw64\bin\curl.exe'
& $CURLEXE $CurlArgument
错误详细信息:
curl.exe : curl: no URL specified!
At line:3 char:1
+ & $CURLEXE $CurlArgument
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (curl: no URL specified!:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
curl: try 'curl --help' or 'curl --manual' for more information
curl.exe:curl:未指定URL!
第3行字符:1
+&$CURLEXE$CurlArgument
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+CategoryInfo:NotSpecified:(curl:未指定URL!:String)[],RemoteException
+FullyQualifiedErrorId:NativeCommandError
curl:有关更多信息,请尝试“curl--help”或“curl--manual”
在Powershell 3.0及更高版本中,有Invoke WebRequest和Invoke RestMethod。Curl实际上是PoSH中invokewebrequest的别名。我认为使用本机Powershell比curl更合适,但这取决于您:) 调用WebRequest MSDN文档如下: 调用RestMethod MSDN文档如下:
或另一个选项,您可以按如下方式调用curl.exe
> curl.exe '-u', 'xxx@gmail.com:yyyy',
'-X', 'POST',
'https://xxx.bitbucket.org/1.0/repositories/abcd/efg/pull-requests/2229/comments',
'--data', 'content=success'
使用此命令了解curl.exe的位置Get命令curl.exe
另一个选项是使用Invoke WebRequest
在PowerShell中查看和删除aliaes
>Get-Aliases
>Remove-Item alias:curl
然后只运行不带“.exe”的命令
> curl '-u', 'xxx@gmail.com:yyyy',
'-X', 'POST',
'https://xxx.bitbucket.org/1.0/repositories/abcd/efg/pull-requests/2229/comments',
'--data', 'content=success'
我希望这会有所帮助。对不起,我没有任何使用curl的经验,但是为什么不使用内置的PowerShell
调用WebRequest
cdmlet?@MartinBrandl,我不知道,我会检查一下,然后告诉你。我收到以下错误信息。+CategoryInfo:NotSpecified:(%Total%…Time Current:String)[],RemoteException+FullyQualifiedErrorId:NativeCommanderRor这是curl
状态输出。添加参数-s
以抑制它。$CurlArgument='-s','-u','xxx@gmail.com:yyyy'、'-X'、'-POST'、'-data',“content=success”在使用content-type:multipart/form-data
:)时,比尝试在PowerShell中使用Invoke-RestMethod
容易得多。幸运的是,Invoke\u WebRequest在您可以使用curl做的事情列表中甚至没有接近curl。Simple--verbose
标志不可用,无法查看有关TLS连接、原始http请求和响应的详细信息。我遗漏了什么吗?非常有用,谢谢!有时,我们习惯于以一种特定的方式做事,而忘记了寻找替代品。
> curl '-u', 'xxx@gmail.com:yyyy',
'-X', 'POST',
'https://xxx.bitbucket.org/1.0/repositories/abcd/efg/pull-requests/2229/comments',
'--data', 'content=success'