首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用httpclient post请求手动触发Azure计时器触发器

无法使用httpclient post请求手动触发Azure计时器触发器
EN

Stack Overflow用户
提问于 2019-03-20 09:43:16
回答 2查看 334关注 0票数 0

https://docs.microsoft.com/en-us/azure/azure-functions/functions-manually-run-non-http

我正在尝试手动触发我在2.0中创建并在.net Core2.0中开发的Azure定时器函数应用程序。

当我尝试访问url时,我得到了403错误。

apikey I pass选自:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-20 10:20:35

正如您提供的文章所述,您需要在ManageHost key下使用_master key

票数 2
EN

Stack Overflow用户

发布于 2019-03-22 22:33:49

我在针对服务总线触发的Azure函数的集成测试中使用以下类。

代码语言:javascript
运行
复制
 class AzureFunctionCaller
{
    private readonly HttpClient _httpClient;
    private readonly string _functionUri;

    public AzureFunctionCaller(string functionName)
    {
        _httpClient = new HttpClient();

        _httpClient.DefaultRequestHeaders.Add("x-functions-key","<Key>");
        _functionUri = $"<FUNCTION_ENDPOINT>/admin/functions/{functionName}";
    }

    public async Task CallViaAdminEndpoint(string content)
    {
        var httpContent = new StringContent(content, Encoding.UTF8, "application/json");

        var response = await _httpClient.PostAsync(_functionUri, httpContent);

        var responseContent = await response.Content.ReadAsStringAsync();
        Console.WriteLine($"Response content: {responseContent}");
    }
}

然后,您必须以将内容放在"input“对象中的格式发送数据。

代码语言:javascript
运行
复制
 var azureFunctionCaller = new AzureFunctionCaller("<FunctionName>");
 var obj = new
        {
            ... // properties you want to send
        };
        var jsonContent = JsonConvert.SerializeObject(new
        {
            input = JsonConvert.SerializeObject(obj)
        });
 await azureFunctionCaller.CallViaAdminEndpoint(jsonContent);`

为了解释input属性,下面是postman中相同调用的样子:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55252379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档