One question I have with this logic: if I on-demand update the Token for the class, it is likely that the HttpClient will have the older cached value set, and never updated...

A different set of logic might need to be determined for whether we could support updating the headers with each request, or at least when the token changes.