예제 #1
0
        private async Task <bool> Init()
        {
            _serviceInstance = await _discovery.FindServiceByName(_serviceName);

            if (_serviceInstance != null)
            {
                _baseUrl = _serviceInstance.BaseUri;
                return(true);
            }
            return(false);
        }
예제 #2
0
        private Task <ServiceApiDescriptor> CreateWebRequest(IServiceInstanceInfo instanceInfo)
        {
            return(Task.Run(() =>
            {
                if (instanceInfo == null)
                {
                    return null;
                }

                var descriptor = new ServiceApiDescriptor()
                {
                    ServiceName = instanceInfo.ServiceName,
                    Version = instanceInfo.Version,
                    Schema = ""
                };

                try
                {
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(instanceInfo.MetadataUri);
                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                    Stream receiveStream = response.GetResponseStream();
                    TextReader reader = new StreamReader(receiveStream, Encoding.UTF8);

                    descriptor.Schema = reader.ReadToEnd();

                    response.Close();
                    reader.Close();
                }
                catch (WebException)
                {
                    return null;
                }

                return descriptor;
            }));
        }
예제 #3
0
 public ServiceRestResponse(ApiClientResponse <T> apiClientResponse, IServiceInstanceInfo serviceInstance)
 {
     _apiClientResponse = apiClientResponse;
     _serviceInstance   = serviceInstance;
 }