Angular 向公司内部API:Collection';公司';找不到
试图通过http进行公司内部查询。我有一个简单的模型来测试数据,但我甚至没有得到一个身份验证错误Angular 向公司内部API:Collection';公司';找不到,angular,api,http,curl,authorization,Angular,Api,Http,Curl,Authorization,试图通过http进行公司内部查询。我有一个简单的模型来测试数据,但我甚至没有得到一个身份验证错误 {body: {…}, url: "https://api.companieshouse.gov.uk/search/companies?q=BBC", headers: HttpHeaders, status: 404, statusText: "Not Found"} body: {error: "Collection 'companies' not found"}
{body: {…}, url: "https://api.companieshouse.gov.uk/search/companies?q=BBC", headers: HttpHeaders, status: 404, statusText: "Not Found"}
body: {error: "Collection 'companies' not found"}
url: "https://api.companieshouse.gov.uk/search/companies?q=BBC"
headers: HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, lazyInit: ƒ}
status: 404
statusText: "Not Found"
__proto__: Object
我用的是邮递员,数据正在那里返回
这是我的测试服务:
private httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
Authorization: 'Basic xxxxxxxxxxxxxxxxxxxxxxx'
})
};
private searchUrl = 'https://api.companieshouse.gov.uk/search/companies?q=BBC';
getCompany(): Observable<any> {
const url = `${this.searchUrl}`;
return this.http.get<any>(url, this.httpOptions )
;
}
private httpOptions={
标题:新的HttpHeaders({
“内容类型”:“应用程序/json”,
授权:“基本XXXXXXXXXXXXXXXXXXXX”
})
};
私有搜索URL=https://api.companieshouse.gov.uk/search/companies?q=BBC';
getCompany():可观察
这份文件说:
基本身份验证通常由用户名和密码组成
一对公司内部API将用户名作为API密钥,并
忽略密码,因此可以保留为空
…那么我是否要在标头中将api密钥作为用户名传递
任何谦恭收到的指针您可以控制台记录httpOptions对象并查看标题是否设置正确吗?我猜您设置HttpHeaders的方式是错误的。正确的语法应该是:newhttpheaders({fromObject:{…您的{u header\u entries…}})
我认为它不会走那么远。这不是一个未经授权的错误。我似乎不能让这个工作与角度。如果我使用fetch,它可以很好地工作。我发现这很简单,当你知道。。。我使用Angular InMemoryDataService模拟API。这是导致错误的原因。如果你遇到同样的问题,它很容易修复。。。将passThruUnknownUrl:true添加到对象文字中,该文字是HttpClientInMemoryWebAPI模块的forRoot子句中的第二个参数。