Angular 如何使用可能返回不同响应类型的端点(角度';什么是HttpClient?

Angular 如何使用可能返回不同响应类型的端点(角度';什么是HttpClient?,angular,angular-httpclient,Angular,Angular Httpclient,我正在对具有以下行为的端点执行GET请求: 如果文件可用,它将以ArrayBuffer形式返回该文件 如果不是,则返回一个JSON对象 如果我执行this.http.get(endpoint,{params}),则在获取文件时会得到如下响应。JSON工作得很好。 但是,如果我执行this.http.get(endpoint,{params,responseType:'arraybuffer'}),我可以下载该文件,但JSON响应会变成一个混乱的字节数组: 我如何使用端点,使数据以我需要的

我正在对具有以下行为的端点执行GET请求:

  • 如果文件可用,它将以ArrayBuffer形式返回该文件
  • 如果不是,则返回一个JSON对象
如果我执行
this.http.get(endpoint,{params})
,则在获取文件时会得到如下响应。JSON工作得很好。

但是,如果我执行
this.http.get(endpoint,{params,responseType:'arraybuffer'})
,我可以下载该文件,但JSON响应会变成一个混乱的字节数组:


我如何使用端点,使数据以我需要的格式出现,而不管它是ArrayBuffer还是JSON对象?

您想要使用多部分内容类型。这样,get就可以有一个表单(查询)和附加文件。我建议使用一个webframework来处理这个问题,比如烧瓶或瓶子


不过这是一个回应。。不是请求?您是否尝试过使用请求模块来自动处理此问题?我的意思是。。这真是糟糕的API设计。在它的当前状态下,我能想到的唯一解决方案是首先尝试执行head请求,以在执行实际请求之前找出它将返回什么内容。但是,修复API可能是正确的解决方案。