Angular 6 でオクテット ストリーム コンテンツを返す REST API を呼び出そうとしています。
リクエストは次のとおりです。
fetchOutput(jobId : string,outputId:string) : {
const options = {
headers: new HttpHeaders( {
'Content-Type': 'application/octet-stream',
'ContentDisposition' : 'attachment',
'ContentDisposition.FileName' : 'TEST_OUTPUT.csv' } ),
responseType: 'blob' as 'blob'
};
var endpoint = "https://myHost/api/jobs/1/output/2/?oauth_consumer_key=123&oauth_signature_method=HMAC-SHA1&oauth_nonce=651487208&oauth_timestamp=1551696001&oauth_version=1.0&format=csv&oauth_signature=Em12lsCwiEbsj4="
return this.httpClient.get(endpoint, options);
}
以下は、この REST API の呼び出しです。
fetchOutput(jobId,outputId).subscribe((data: any) => {
let b:any = new Blob([data], { type: "application/octet-stream" });
console.log(b);
});
私が得るエラーは次のとおりです。
error:{ Blob
size: 0
type: "text/xml" }
name: "HttpErrorResponse"
ok: false
status: 401
statusText: "Unauthorized"
また、同じエンドポイントをコピーして郵便配達員にヒットすると、完全に正常に動作することに注意してください。また、ajax 経由で発行された同じリクエストも正常に実行されます。