0

我想使用 Scopus API 来验证 DOI 是否存在。我正在使用“引用者”选项。我在POSTMAN中对此“ http://api.elsevier.com/content/search/scopus?query=DOI(10.1016/j.stem.2011.10.002) ”链接进行了测试,它可以工作,但是当我这样做时在 Angular 中实现this 是返回的。

角码

let headers = new Headers({ 
            'X-ELS-APIKey': apikey,
            'Accept': 'application/json',
        });
        this._http.get('http://api.elsevier.com/content/search/scopus?query=DOI(' + doi + ')', { headers: headers }).pipe(map(res => res.json())).subscribe(
            response => {
                console.log("Response");
                console.log(response);
            },
            error => {
                console.log("Error");
                console.log(error);
            }
        );

任何帮助是极大的赞赏 :)

4

1 回答 1

0

最后我解决了,问题是“doi”字符串需要通过encodeURIComponent()函数。我留下代码以防有人需要。

欢迎.component.ts

let doi = encodeURIComponent('10.1017/j.stem.2011.10.002');
this._scopusService.getPublication(doi).subscribe(
    response => {
    console.log("DOI exists");
},
error => {
    console.log("DOI doesn't exists");
}

scopus.service.ts

public getPublication(doi) {
    let headers = new Headers({
        'Accept': 'application/json',
        'X-ELS-APIKey': this.apiKey
    });

    return this._http.get('https://api.elsevier.com/content/search/scopus?query=DOI(' + doi + ')', { headers: headers }).pipe(map(res => res.json()));
}
于 2018-07-14T01:37:44.377 回答