Как разобрать XML из приложения, запускаемого по протоколу http? - PullRequest
0 голосов

Как извлечь содержимое моего запроса, который был получен внутри приложения логики?

У меня есть обычное приложение, запускаемое по протоколу httpвот так:

enter image description here

Я отправляю запрос POST через почтальона, вот так:

enter image description here

{
    "$content-type": "application/octet-stream",
    "$content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><cases><file-path>yes</file-path></cases>"
}

Я пытаюсь извлечь полезную нагрузку $content:

"@{string(xml(string(triggerBody()?['content'])))}"

Проблема, которую я получаю:

enter image description here

Как извлечь содержимое моего запроса, полученного внутри приложения логики?

Вотвся инициализируемая переменная шаг:

    "Initialize_variable": {
        "inputs": {
            "variables": [
                {
                    "name": "contentOfRequest",
                    "type": "String",
                    "value": "@{string(xml(string(triggerBody()?['content'])))}"
                }
            ]
        },
        "runAfter": {},
        "type": "InitializeVariable"
    }

1 Ответ

1 голос
/ 17 мая 2019

Потому что тело запроса является строкой, оно не поддерживает свойство select. поэтому сначала вам нужно разобрать его в формате Json, затем вы сможете выбрать $content.

enter image description here

О том, как получить схему Json, просто нажмите Use sample payload to generate schema в действии Parse Json и вставьте свои данные Json, затем нажмите готово.

А затем извлеките значение $content с помощью body('Parse_JSON')?['$content'], таким образом, вы получите значение содержимого.

enter image description here

...