in Darabonba/Core.cs [365:407]
internal static HttpRequestMessage GetRequestMessage(Request request, Dictionary<string, object> runtimeOptions, out int timeout)
{
var url = ComposeUrl(request);
HttpRequestMessage req = new HttpRequestMessage();
req.Method = HttpUtils.GetHttpMethod(request.Method);
req.RequestUri = new Uri(url);
timeout = 100000;
int readTimeout = DictUtils.GetDicValue(runtimeOptions, "readTimeout").ToSafeInt(0);
int connectTimeout = DictUtils.GetDicValue(runtimeOptions, "connectTimeout").ToSafeInt(0);
if (readTimeout != 0 || connectTimeout != 0)
{
timeout = readTimeout + connectTimeout;
}
if (request.Body != null)
{
Stream requestStream = new MemoryStream();
request.Body.Position = 0;
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = request.Body.Read(buffer, 0, buffer.Length)) != 0)
{
requestStream.Write(buffer, 0, bytesRead);
}
requestStream.Position = 0;
StreamContent streamContent = new StreamContent(requestStream);
req.Content = streamContent;
}
foreach (var header in request.Headers)
{
req.Headers.TryAddWithoutValidation(header.Key, header.Value);
if (header.Key.ToLower().StartsWith("content-") && req.Content != null)
{
req.Content.Headers.TryAddWithoutValidation(header.Key, header.Value);
}
}
return req;
}