У меня есть проект NativeScript Angular, который иногда выдает эту ошибку при простом запросе GET.
Ошибка
ERROR {
"headers": {
"normalizedNames": {},
"lazyUpdate": null,
"headers": {}
},
"status": 0,
"statusText": "Unknown Error",
"url": "https://api.domain.com/get_url",
"ok": false,
"name": "HttpErrorResponse",
"message": "Http failure response for https://api.domain.com/get_url: 0 Unknown Error",
"error": {
"originalStack": "Error: java.net.UnknownHostException: Unable to resolve host \"api.domain.com\": No address associated with hostname\n at new ZoneAwareError (file:///data/data/org.nativescript.tnsfaculty/files/app/vendor.js:91745:33)\n at onRequestComplete (file:///data/data/org.nativescript.tnsfaculty/files/app/vendor.js:98017:34)\n at Object.onComplete (file:///data/data/org.nativescript.tnsfaculty/files/app/vendor.js:98006:13)"
}
}
Проблема заключается в том, что это ошибка не является последовательной и устраняется простым refre sh. Я понятия не имею, почему и когда это происходит. Есть ли способ диагностировать эту проблему и решить ее.
Добавление службы API моего проекта для контекста.
api.service.ts
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from "@angular/common/http";
@Injectable({
providedIn: 'root'
})
export class ApiService {
apiUrl = "https://api.domain.com";
constructor(private http: HttpClient) { }
private setHeaders(path) {
if (!this.headersException(path)){
const token = getString('auth_token');
console.log('Setting Headers');
if (token !== null){
let headers = new HttpHeaders({
"Authorization": token,
"Accept": "application/json",
"Content-Type": "application/json",
});
return headers;
}
}
}
public headersException(path){
if (path === 'login' || path === 'signup'){
return true;
} else {
return false;
}
}
public get(path){
const url = this.apiUrl + '/' + path;
return this.http.get(url, { headers: this.setHeaders(path) });
}
}