尝试使用 powershell 下载 git 存储库时获取"(406) Not Acceptable"



我正在尝试使用powershell将repo下载为zip文件。以下是我尝试的方法。

$token = "MyGitToken";
$repo = "https://github.com/my-private-repo/archive/master.zip";
$targetFile = "./master.zip";
$restRequest = @{
Method  = "Get"
Uri     = "$repo"
Headers = @{
Authorization = "Token $token"
Accept        = "application/vnd.github.v3.raw"
}
};
$response = Invoke-RestMethod @restRequest -OutFile $targetFile;

我得到了以下错误。你知道如何按照评论中的建议解决这个问题吗。。

System.Net.WebException: The remote server returned an error: (406) Not Acceptable.   
at Microsoft.PowerShell.Commands.WebRequestPSCmdlet.GetResponse(WebRequest request)
at Microsoft.PowerShell.Commands.WebRequestPSCmdlet.ProcessRecord()

附言:当我在浏览器中直接点击$repo url时,我可以下载zip文件。

EDIT:更新了Invoke-RestMethod命令,只使用OutFile而不是管道。

HTTP Accept标头是一条指向服务器的指令,表示

嘿,我只能理解这些格式

所以,在你的请求中,你说的是

Github,我想要这个文件,但我也希望你为我做一些工作,并将其制作成这种格式,kthanxbai

GitHub正在响应406不可接受,因为它没有时间容纳你或你奇怪的请求格式,也因为你在结尾处省略了*选项,这意味着"我会接受任何形式的";。

要修复此问题,请尝试在没有Accepts标头的情况下执行请求,或者像这样修改您的标头:

Accept        = "application/vnd.github.v3.raw,*"

来源:

Accept头告诉服务器浏览器正在查找的文件格式,或者更正确的MIME类型。。。

https://www.newmediacampaigns.com/blog/browser-rest-http-accept-headers

最新更新