{ "id": "api/common/http/HttpContext", "title": "HttpContext", "contents": "\n\n
\n
\n
\n \n API > @angular/common > @angular/common/http\n
\n \n
\n \n
\n

HttpContextlink

\n \n \n \n \n \n
\n \n \n\n
\n \n
\n

Http context stores arbitrary user defined values and ensures type safety without\nactually knowing the types. It is backed by a Map and guarantees that keys do not clash.

\n\n

See more...

\n
\n \n \n \n
\n\nclass HttpContext {\n set<T>(token: HttpContextToken<T>, value: T): HttpContext\n get<T>(token: HttpContextToken<T>): T\n delete(token: HttpContextToken<unknown>): HttpContext\n keys(): IterableIterator<HttpContextToken<unknown>>\n}\n\n\n \n \n\n
\n\n\n \n\n \n \n
\n

Descriptionlink

\n

This context is mutable and is shared between cloned requests unless explicitly specified.

\n\n

Further information available in the Usage Notes...

\n
\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n
\n

Methodslink

\n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n
\n
\n

\n set()\n \n link

\n \n
\n
\n

Store a value in the context. If a value is already present it will be overwritten.

\n\n
\n
\n \n\n set<T>(token: HttpContextToken<T>, value: T): HttpContext\n\n \n\n
Parameters
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n token\n HttpContextToken\n

The reference to an instance of HttpContextToken.

\n\n
\n \n value\n T\n

The value to store.

\n\n
\n\n \n
Returns
\n

HttpContext: A reference to itself for easy chaining.

\n\n \n\n\n \n\n \n
\n
\n\n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n
\n
\n

\n get()\n \n link

\n \n
\n
\n

Retrieve the value associated with the given token.

\n\n
\n
\n \n\n get<T>(token: HttpContextToken<T>): T\n\n \n\n
Parameters
\n \n \n \n \n \n \n \n \n \n
\n \n token\n HttpContextToken\n

The reference to an instance of HttpContextToken.

\n\n
\n\n \n
Returns
\n

T: The stored value or default if one is defined.

\n\n \n\n\n \n\n \n
\n
\n\n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n
\n
\n

\n delete()\n \n link

\n \n
\n
\n

Delete the value associated with the given token.

\n\n
\n
\n \n\n delete(token: HttpContextToken<unknown>): HttpContext\n\n \n\n
Parameters
\n \n \n \n \n \n \n \n \n \n
\n \n token\n HttpContextToken\n

The reference to an instance of HttpContextToken.

\n\n
\n\n \n
Returns
\n

HttpContext: A reference to itself for easy chaining.

\n\n \n\n\n \n\n \n
\n
\n\n \n \n\n \n \n \n \n \n \n \n \n\n \n\n \n \n
\n
\n

\n keys()\n \n link

\n \n
\n
\n
\n \n\n keys(): IterableIterator<HttpContextToken<unknown>>\n\n \n\n
Parameters
\n

There are no parameters.

\n\n \n
Returns
\n

IterableIterator<HttpContextToken<unknown>>: a list of tokens currently stored in the context.

\n\n \n\n\n \n\n \n
\n
\n\n \n
\n\n\n\n \n
\n

Usage noteslink

\n

Usage Examplelink

\n\n// inside cache.interceptors.ts\nexport const IS_CACHE_ENABLED = new HttpContextToken<boolean>(() => false);\n\nexport class CacheInterceptor implements HttpInterceptor {\n\n intercept(req: HttpRequest<any>, delegate: HttpHandler): Observable<HttpEvent<any>> {\n if (req.context.get(IS_CACHE_ENABLED) === true) {\n return ...;\n }\n return delegate.handle(req);\n }\n}\n\n// inside a service\n\nthis.httpClient.get('/api/weather', {\n context: new HttpContext().set(IS_CACHE_ENABLED, true)\n}).subscribe(...);\n\n\n
\n\n\n\n
\n
\n\n\n" }