How can I get access to the Angular 2 http response body without converting it to string or json?

sschueller picture sschueller · Mar 18, 2016 · Viewed 30.2k times · Source

I would like to copy a REST response into a blob but I am unable to do some because blob() and arrayBuffer() have not yet been implemented in the Response Object. The Response Body is a private variable.

...
return this.http.get(url, {params: params, headers: headers})
     .map(res => {   
        // can't access _body because it is private
        // no method appears to exist to get to the _body without modification             
        new Blob([res._body], {type: res.headers.get('Content-Type')});
     })
     .catch(this.log);
...

Is there a solution I can use until these methods get implemented?

Answer

StudioLE picture StudioLE · Jan 1, 2017

There's a much simpler solution to accessing the body as a string which I haven't seen documented anywhere:

let body = res.text()