예제 #1
0
        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));
        }
예제 #2
0
 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));
     }
 }
예제 #3
0
 private Task <Uri> LookupServiceAddress(FabricAddress fabricAddress, CancellationToken cancellationToken)
 {
     return(Task.FromResult(lookupFunc(fabricAddress)));
 }