在Angular'中使用请求方法;https客户端类

在Angular'中使用请求方法;https客户端类,angular,Angular,我正在Angular 4中开发一个服务,它必须提供一个通用的http请求方法(而不是单独的get、put、post…)。我试图在HttpClient中使用request方法,但无法传递所需的options参数。我的代码大致如下所示: let options = { headers: headers, content: content, responseType: ????, observe: ?????? }; http.request(method, url

我正在Angular 4中开发一个服务,它必须提供一个通用的http请求方法(而不是单独的get、put、post…)。我试图在HttpClient中使用request方法,但无法传递所需的options参数。我的代码大致如下所示:

let options = { 
    headers: headers,
    content: content,
    responseType: ????,
    observe: ??????
};

http.request(method, url, options)
     .map(res => new SeamResponse(res.status, res.json()))
现在,我有两个问题:

  • 我无法传递reponseType选项,因为如果我指定像“json”这样的值,我会得到以下eror:
  • 错误TS2345:类型“{headers:HttpHeaders;content:string;responseType:string;}”的参数不能分配给类型“{body?:any;headers?:HttpHeaders;params?:HttpParams;observe?:HttpObserve;reportProgress?:…”的参数。属性“responseType”的类型不兼容。类型“string”不能分配给类型“json”|“arraybuffer”|“blob”|“text””

  • 我也不能传递observe选项,因为它的类型显然不是从HttpClient类导出的
  • 错误TS2305:模块“/Users/pchacin/Documents/workspace/seam sdk core ts/node_modules/@angular/common/http”没有导出的成员“HttpObserve”

  • 我无法处理响应,因为它无法识别map方法,据我所知,map方法是可观察的标准方法:
  • 错误TS2339:类型“Observable”上不存在属性“map”

    非常感谢

    编辑:


    问题2在angular(4.4.1)的最新版本中解决作为导出HttpObserve的一个实验特性,但是github中关于该主题的讨论表明HttpObserve类型将被删除,并且该选项将被定义为string,因此我不倾向于遵循此路径。我的问题是:请求方法已经存在了一段时间,从4.2开始,至少没有人使用过它?如果是,如何处理?

    responseType相关的错误会发生。正确的指定方法是:

    let options = { 
        headers: headers,
        content: content,
        responseType: 'text' as 'tex',
        observe: 'response' as 'response'
     };
    

    responseType的错误与相关。正确的指定方法是:

    let options = { 
        headers: headers,
        content: content,
        responseType: 'text' as 'tex',
        observe: 'response' as 'response'
     };
    

    添加typeObject,然后可以使用选项作为request()/get()/post()方法的参数


    添加typeObject,然后可以使用选项作为request()/get()/post()方法的参数


    也许您可以使用Angular的枚举本身:

    responseType: ResponseType.Default
    

    也许您可以使用Angular的枚举本身:

    responseType: ResponseType.Default
    

    选项中没有一项是必需的。只传递您所拥有的。请参阅。HttpObserve是一个字符串。类型“Observable”上不存在众所周知的错误,此问题已被多次回答。@R.Richards问题是我需要设置them@estus您指给我的讨论实际上不是string。没有什么可猜测的。如果您对某些内容不确定,请检查源代码。选项中没有一项是必需的。只传递您所拥有的。请参阅。HttpObserve是一个字符串。类型“Observable”上不存在是众所周知的错误,这个问题已被回答了多次。@R.Richards问题是我的问题使凝固them@estus你指给我的讨论实际上不是一个字符串。没有什么可以猜测的。如果你不确定某件事,请检查源代码解决了我的问题,但为什么它必须强制转换为Object to work?解决了我的问题,但为什么它必须强制转换为Object to work?