有没有一种(简单的)方法可以从 HTTP 标头参数中提取子字符串?

epi*_*ers 0 azure-logic-apps

我正在调用带有分页的 rest api,在响应中我得到了 HTTP 标头中的“下一个”链接,格式如下:链接<https://aaaaaa/bbb/ccc/ddd/version/2.1.1/locations/?date_from=1601-01-01T00%3a00%3a00Z&date_to=2019-04-24T17%3a03%3a29Z&offset=100&limit=100>; rel="下一个"

我可以轻松获取 HTTP Header 链接参数的值

但是 Azure Logic Apps 中没有正则表达式,我可以使用它来进一步解析 < 和 > 之间的部分中的链接值

一种选择是编写一个处理此问题的 Azure 函数,但我正在寻找更简单的方法(如果可能)

{
    "inputs": {
        "name": "newLink",
        "value": "@{outputs('HTTP')['headers']?['Link']}"
    }
}
Run Code Online (Sandbox Code Playgroud)

newLink 变量现在包含链接的完整值。但我只需要 < 和 > 之间的部分

非常感谢有关如何将 newLink 变量解析为我需要的内容(不使用 azure 函数)的任何提示。

小智 5

您可以使用spilt()如下所示的函数:

@split(split(triggerOutputs()['headers']?['Link'],'<')[1],'>')[0]
Run Code Online (Sandbox Code Playgroud)

设计师视图

设计师

代码视图

{
    "definition": {
        "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
        "actions": {
            "Response": {
                "inputs": {
                    "body": "@split(split(triggerOutputs()['headers']?['Link'],'<')[1],'>')[0]",
                    "statusCode": 200
                },
                "kind": "Http",
                "runAfter": {},
                "type": "Response"
            }
        },
        "contentVersion": "1.0.0.0",
        "outputs": {},
        "parameters": {},
        "triggers": {
            "manual": {
                "inputs": {
                    "schema": {}
                },
                "kind": "Http",
                "type": "Request"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

邮递员电话:

在此处输入图片说明