gpt4 book ai didi

angular - Http get Request 不返回文件但返回有关它的信息

转载 作者:可可西里 更新时间:2023-11-01 17:16:41 27 4
gpt4 key购买 nike

我需要从 (VSTS) API 检索文件的内容。该文件位于 git 存储库中。

但是,当我请求文件时,我收到的是关于文件的信息,而不是内容:

commitId: "024576d864ea12413fa9b**77aa11dde4292f62a"
gitObjectType: "blob"
objectId: "ad9b48a957db402**705cc2924b46f4573178f13"
path: "/file.json"
size : 6879
url: "https://****.visualstudio.com/d98**9e7-f21c-5bf7-8c3b-cdefde559700/_apis/git/repositories/83abc*bd-9ee5-44d2-9***-abcbebbcff29/items?path=%2Ffile.json&versionType=Branch&versionOptions=None"
_links: {self: {…}, repository: {…}, blob: {…}}

这是我的代码:

const httpOptions = {
headers: new HttpHeaders({
'Authorization' : 'Basic ' + btoa('user:password')
})
};

public getFile(): any {
this.HttpClient.get(apiUrl, httpOptions).subscribe(data => {
console.log(data);
});
}

与 Postman 完全相同的请求(相同的 Url 和 Headers)让我得到了文件的内容。你们知道我在我的代码中做错了什么吗?

最佳答案

您需要编写一个方法来显式下载文件:

private downloadFile(data) {
const blob = new Blob([data], {type: 'application/octet-stream'});
const url = window.URL.createObjectURL(data._links.blob);
const anchor = document.createElement('a');
anchor.download = 'your-file-name.txt';
anchor.href = url;
document.body.appendChild(anchor);
anchor.click();
document.body.removeChild(anchor);
}

现在在订阅您的 GET 调用时调用它:

this.HttpClient.get(apiUrl, httpOptions).subscribe(data => {
this.downloadFile(data);
});

关于angular - Http get Request 不返回文件但返回有关它的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57305264/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com