在 Angular 中使用 httpclient.post 发送和接收不同类型

Sending and receiving different Types with httpclient.post in Angular

我需要调用 Web 服务,我在其中发送 POST 带有用户对象的请求,它 returns 我是一个 LogToken 对象。

我找不到如何使用 Angular httpClient 执行此操作,因为它似乎期望发送和接收的类型相同。如果我执行以下操作,我会收到错误消息:

  public login(user: User): Observable<LoginToken> {
    return this._httpClient.post<User>(this._authenticationServiceUrl, user);
  }

Error TS2322 Type 'Observable{User}' is not assignable to type 'Observable{LoginToken}'.

由于我对这项技术还很陌生,所以我想我做错了什么,但我不确定是什么。从 POST 请求接收不同类型是否错误?

传递给 post 的类型参数是您希望返回的参数。也一样

public login(user: User): Observable<LoginToken> {
    return this._httpClient.post<LoginToken>(this._authenticationServiceUrl, user);
}

要在 angular 2 中发出 HTTP 请求,请按照以下步骤操作

1.Import 来自@angular/http 库的 Http 模块

import { Http } from '@angular/http';

2.Create 在构造函数中使用依赖注入的 Http 实例

constructor(private http : Http) { }

3.Call http POST 并使用 Promise 处理异步调用

public login(user: User): Promise<LoginToken> {
    return this.http.post(this._authenticationServiceUrl, user).toPromise()
    .then(**HandleData**)
    .catch(**HandleError**);
}