/// <summary> /// Initializes a new instance of the <see cref="RestClientService"/> class /// with a specified <see cref="IRestClientDescription"/> instance. /// </summary> /// <param name="configuration">The configuration instance.</param> public RestClientService(IRestClientDescription configuration) : base(configuration) { if (this.Description == null) { this.Description = InternalConfiguration.GetServiceClientConfiguration().Clients.Find(d => d.Name == endpointName); } }
/// <summary> /// Initializes a new instance <see cref="RestClientService"/> class /// with a specified endpoint name. /// </summary> /// <param name="endpointName">The name of the endpoint to use in the configuration.</param> public RestClientService(string endpointName) : base(InternalConfiguration.GetServiceClientConfiguration().Clients.Find(x => x.Name == endpointName)) { this.endpointName = endpointName; this.Requesting += (o, e) => { EntitySource.Current = new EntitySource(new WebEntitySourceProvider(this.Credentials)); }; }
/// <summary> /// Creates the HTTP request. /// </summary> /// <param name="url">The URL.</param> /// <param name="query">The query.</param> /// <returns>WebRequest.</returns> protected override WebRequest CreateHttpRequest(string url, NameValueCollection query) { if (this.Description == null) { this.Description = InternalConfiguration.GetServiceClientConfiguration().Clients.Find(d => d.Name == endpointName); } var retVal = (HttpWebRequest)base.CreateHttpRequest(url, query); // Certs? if (this.ClientCertificates != null) { retVal.ClientCertificates.AddRange(this.ClientCertificates); } // Compress? if (this.Description.Binding.Optimize) { retVal.Headers.Add(HttpRequestHeader.AcceptEncoding, "deflate,gzip"); } return(retVal); }