public async Task <HttpResponseMessage> ProxyToService(FabricAddress fabricAddress, HttpRequestMessage request, CancellationToken cancellationToken) { var uri = await LookupServiceAddress(fabricAddress, cancellationToken); var serviceUri = GetServiceUri(uri, request.RequestUri); return(await ProxyRequest(serviceUri, request, httpClient)); }
protected override async Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { try { var fabricAddress = new FabricAddress(request.RequestUri); return(await clientProxy.ProxyToService(fabricAddress, request, cancellationToken)); } catch (FabricAddress.InvalidFabricAddressException) { return(new HttpResponseMessage(HttpStatusCode.NotFound)); } catch (FabricServiceNotFoundException) { return(new HttpResponseMessage(HttpStatusCode.NotFound)); } }
private Task <Uri> LookupServiceAddress(FabricAddress fabricAddress, CancellationToken cancellationToken) { return(Task.FromResult(lookupFunc(fabricAddress))); }