使用Visual Studio 2017,我创建了一个带有Generic WebHook的函数应用程序:
public static class FunctionWebHook
{
[FunctionName("FunctionWebHook")]
public static async Task<object> Run([HttpTrigger(WebHookType = "genericJson")]HttpRequestMessage request, TraceWriter log)
{
log.Info($"Webhook was triggered!");
string jsonContent = await request.Content.ReadAsStringAsync();
log.Info(jsonContent);
return request.CreateResponse(HttpStatusCode.NoContent);
}
}
代码只是默认模板。我将此部署到我的Azure帐户并尝试调用它。我使用门户网站上的“获取功能网址”链接来获取正确的URL,其中包括code和clientId参数。当我尝试将JSON POST到函数(内容类型设置为application / json)时,我收到400 Bad Request:
{"Message":"The 'code' query parameter provided in the HTTP request did not match the expected value."}
我检查了代码参数,它是正确的。我也多次重新创建了功能应用程序,但是我仍然收到错误。当我使用Portal的Run命令调用该函数时,它会正确执行。
之前有没有人遇到过这个问题?
答案 0 :(得分:1)
所以我使用Restlet Client进行任何API工作,看起来它有一个奇怪的问题。我从Portal中复制了默认(主机密钥)并将URL粘贴到Restlet Client中,由于某种原因,删除了代码参数的最后一个'=='。我使用Postman尝试了请求并且该请求有效!
感谢所有评论和回复!
答案 1 :(得分:0)
您选择使用哪个密钥验证您的请求?键有3种类型。请选择默认值(功能键)并使用生成的URL和密钥。我测试了它,功能键可以从服务器传递验证。
有关功能键和主机键的更多信息,以下链接供您参考。