in sdk/Common/Communication/ServiceClientImpl.cs [396:421]
private static void SetRequestHeaders(HttpWebRequest webRequest, ServiceRequest serviceRequest,
ClientConfiguration configuration)
{
webRequest.Timeout = configuration.ConnectionTimeout;
webRequest.ReadWriteTimeout = configuration.ConnectionTimeout;
webRequest.Method = serviceRequest.Method.ToString().ToUpperInvariant();
// Because it is not allowed to set common headers
// with the WebHeaderCollection.Add method,
// we have to call an internal method to skip validation.
foreach (var h in serviceRequest.Headers)
{
// Nginx does not accept a chunked encoding request with Content-Length, as detailed in #OSS-2848
if (h.Key.Equals(HttpHeaders.ContentLength) && (serviceRequest.UseChunkedEncoding ||
(serviceRequest.Content != null && !serviceRequest.Content.CanSeek) || serviceRequest.Content == null))
{
continue;
}
HttpExtensions.AddInternal(webRequest.Headers, h.Key, h.Value);
}
// Set user-agent
if (!string.IsNullOrEmpty(configuration.UserAgent))
webRequest.UserAgent = configuration.UserAgent;
}