in src/WebJobs.Extensions.Http/HttpTriggerAttributeBindingProvider.cs [485:512]
public override async Task<object> GetValueAsync()
{
if (_parameter.ParameterType == typeof(HttpRequest))
{
return _request;
}
else if (_parameter.ParameterType == typeof(HttpRequestMessage))
{
return new HttpRequestMessageFeature(_request.HttpContext).HttpRequestMessage;
}
else if (_parameter.ParameterType == typeof(object))
{
// for dynamic, we read as an object, which will actually return
// a JObject which is dynamic
// Only supported for JSON payloads
if (_request.IsJsonContentType())
{
using (var reader = new StreamReader(_request.Body))
{
string jsonString = await reader.ReadToEndAsync();
return JsonConvert.DeserializeObject(jsonString);
}
}
}
return await base.GetValueAsync();
}