typescript - Ladda binär fil i Angular 5
Jag arbetar i Angular 5 för att integrera flatbuffers-svar med mitt API-anrop. Jag försöker ladda en binär fil med HttpClient i Angular 5.
Jag har försökt med nedanstående kod för att få byte-data i Uint8Array. Har också försökt med Blob men det fungerar inte.
let apiUrl = "./assets/test.bin";
const headers = {
headers: new HttpHeaders({responseType: "application/octet-stream"})
};
let data : Observable<Uint8Array> = this.http.get<Uint8Array>(apiUrl, headers);
data.subscribe( (response: Uint8Array) => {
const data = response;
// console.log(data);
console.log("successful");
return data;
}, (error : HttpErrorResponse)=> {
console.log(error.error.text);
});
Binärfil
FBS Genererad TS-fil
Svar #1
Prova något som:
let apiUrl = "./assets/test.bin";
const headers = {responseType: "blob"};
let data : Observable<Blob> = this.http.get<Blob>(apiUrl, headers);
data.subscribe( (response: Blob) => {
const data = response;
console.log(data);
}, (error : HttpErrorResponse)=> {
console.log(error.error.text);
});
Svar #2
Svaret som ges av @sabithpocker skulle fungera om header-objektet var korrekt. På grund av felaktig header tolkar Angulars http-modul det som JSON. Den korrekta headern skulle se ut så här:
const headers = {
headers: new HttpHeaders({
'Accept':'blob'
}),
'responseType': 'blob' as 'json'
}
