Get http.get response status code angular2

I need to get the status code of the next http call and return it as a string

//This method must return the status of the http response
confirmEmail(mailToken):Observable<String>{

     return this.http.get(this.baseUrl+"users/activate?mailToken="+mailToken)
                     .map(this.extractData)
                     .catch(this.handleError);

}

      

THH!

+10


source to share


7 replies


Adding answer for Angular versions> = 4.3 (including 8) with a new HttpClient

one that replaceshttp

import {HttpClientModule} from '@angular/common/http'; // Notice it is imported from @angular/common/http instead of @angular/http

      

How to get response code or any other header:

http.get(
   '${this.baseUrl}users/activate?mailToken=${mailToken}',
    {observe: 'response'}
)
  .subscribe(response => {

    // You can access status:
    console.log(response.status);

    // Or any other header:
    console.log(response.headers.get('X-Custom-Header'));
  });

      



As noted in @Rbk's comment,

The object {observe: 'response'}

is what makes the complete answer object available.

Check the documentation

+19


source


Just change your code as follows to keep your responseStatus in the field:

responseStatus: number;

//This method must return the status of the http response
confirmEmail(mailToken):Observable<String> {
//Edited for working with HttpClient on Angular >= 4.3
  return this.http.get(this.baseUrl+"users/activate?mailToken="+mailToken, {observe: 'response'})
                 .map((response: Response) => {
                   this.responseStatus = response.status;
                   return this.extractData(response);
                 }
                 .catch(this.handleError);

}

      



And then render it in your component HTML template:

<p class='responseStatus'>{{responseStatus}}</p>

      

+8


source


This is how I did it:

checkResponse() {
  this.http.get(this.url, { observe: 'response' })
  .subscribe(response => console.log(response.status));
}

      

Using Angular 7.

+4


source


Plain!

Inside the extractData function p>

extractData (res){
//res.status  will be your status code
// res.statusText  will be your status Text
}

      

+3


source


    confirmEmail(mailToken):Observable<String> {
   return this.http.get(this.baseUrl+"users/activate?mailToken="+mailToken)
     .pipe(map(data => {
       return data.httpStatus
         }));
     .catch(this.handleError);
}

      

Hope this solves your problem.

0


source


If you have query parameters and other parameters you need to add

{ observe: 'response', params: new HttpParams() } 

      

to your method .get, .post, .patch, etc. as the second argument. Then you can access it through the callback response.status. Please note, if you are like me and need to do this, put the parameters in the same array.

create(resource: Resource, query?: Query): Observable<Resource> {
  return this._httpClient
    .post('${this._apiUrl}${this._endpoint}', this._serializer.toJson(resource), {
      params: query ? new HttpParams({ fromObject: query.toOData() }) : null,
      observe: 'response'
    })
    .map(
      (response): Resource => {
        this.handleStatusCode(response.status);
        try {
          return this._serializer.fromJson(response);
        } catch (err) {
          throw new Error('Error parsing resource. Details: ${err}');
        }
      }
    );
}
      

Run codeHide result


0


source


doesn't work with me

see my method in c # with aspnet core

    public IActionResult Insert([FromBody]TrocoSolidarioDTO x)
    {
        if (x == null)
        {
            return BadRequest();
        }
        try
        {
            return Ok("Working");
        }
        catch (Exception ex)
        {
            return BadRequest(ex.Message);
        }
    }

      

-1


source







All Articles