使用JSON参数的Typescript Rest API POST调用

368yc8dk  于 2023-06-25  发布在  TypeScript
关注(0)|答案(4)|浏览(153)

我试图找到一个代码示例,以JSON作为参数向REST API发送POST请求,并在Typescript中获得响应和任何异常/错误代码。

u5rb5r59

u5rb5r591#

你可以从这样的事情开始

服务项目

export class MyService{
  constructor(
    private httpClient: HttpClient) {
  }

   getSomethingFromServer():Observable<any>{
       return this.httpClient.get('you_request_url');
   }
}

组件

constructor(
    private myService: MyService) {
  }

  this.myService.getSomethingFromServer().subscribe(response => {
     // do whatever you want with the response
  }, error => {
     // handle error here
     // error.status to get the error code
  });
km0tfn4u

km0tfn4u2#

首先按如下方式设置头部,“userIdAuthToken”应该是安全服务返回的令牌

this.httpOptions = {
  headers: new HttpHeaders({
    'Content-Type': 'application/json',
    'Authorization': 'Bearer ' + this.userIdAuthToken
  })
};

那就提出你的要求

private _http: HttpClient      // goes in constructor

let saveRequest = this._http.post<Project>(
  this.apiUrl + '/project' + '/post',
  JSON.stringify(data),
  this.httpOptions);

saveRequest将是一个observable,因此您需要在组件中订阅它

hivapdat

hivapdat3#

//最后的工作代码。您应该维护service用于API调用,并从Component.ts调用

public post(a : string, data: string): Observable<any>{

    const options = new RequestOptions({
      headers: this.getAuthorizedHeaders(),
      responseType: ResponseContentType.Json,
      withCredentials: false
    });

    return this.http.post(this.BASE_URL, JSON.stringify({ var: a, data: data}), options)
      .map(this.handleData)
      .catch(this.handleError);
}
lhcgjxsq

lhcgjxsq4#

图书馆能做到这一点吗?值得一看node-fetchfetch-asmake-fetch-happen,什么不。

相关问题