Simple testable generic http client