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

时间:2018-03-06 11:33:20

标签: angular typescript post angular-httpclient

我需要调用一个Web服务,在那里我发送一个带有User对象的POST请求,它返回一个LogToken对象。

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

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

错误TS2322类型&#39;可观察{用户}&#39;不能分配给类型   &#39;可观察{LoginToken}&#39;

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

2 个答案:

答案 0 :(得分:3)

传递给post的类型参数是您不能回来的那个。

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

答案 1 :(得分:0)

要以角度2制作HTTP请求,请按照以下步骤进行操作

1.从@ angular / http库

导入Http模块
import { Http } from '@angular/http';

2.在构造函数中使用Dependancy Injection创建Http实例

constructor(private http : Http) { }

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

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