Powershell Invoke-WebRequest XML数据

时间:2019-11-21 10:22:12

标签: json xml powershell

我有一个主要的API请求,我正在尝试与Powershell一起将其作为JSON进一步发送到PowerBI。 XML格式如下(但更大):

<queryResponse last="99" first="0" count="2" type="APD" responseType="list" requestUrl="an URL" rootUrl="root URL">
   <entity dtoType="aPDDTO" type="APD" url="URL_ID">
      <accessPointDetailsDTO displayName="ID" id="ID">
         <adminStatus>ENABLE</adminStatus>
         <apType>AP2600I</apType>
         <clientCount_5GHz>2</clientCount_5GHz>
         <status>CLEARED</status>
         <type>UnifiedAp</type>
            <cdpNeighbors>
               <cdpNeighbor>
                  <capabilities>Switch IGMP </capabilities>
                  <duplex>Full Duplex</duplex>
                  <interfaceSpeed>100Mbps</interfaceSpeed>

我希望能够发送的不是指定字段,而是所有其他字段。 当API使用我尝试使用的JSON时,我使用了一个循环:

while ($true) {
$AccessPointDetails = Invoke-WebRequest -Uri $Uri -Headers @{"Authorization"="Basic $BasicCreds"}
    foreach ($AccessPoint in $AccessPointDetails) {
        $payload = @{
            "adminStatus" = $AccessPoint.adminStatus
      }
        Invoke-RestMethod -Method Post -Uri "$endpoint" -Body (ConvertTo-Json @($payload))
        sleep 100
    }
}

我没有任何值,所以我猜它不知道数据在哪里。

编辑1

我发现了一些有关执行以下操作的提示,以便在代码末尾显示数据:

[ xml ]$fileContents = Get-Content -Path $Result

问题是似乎不喜欢我尝试读取的数据中的第一行,因为它向我抛出了此错误:

Get-Content : Cannot find drive. A drive with the name '<?xml version="1.0" ?>

1 个答案:

答案 0 :(得分:0)

我通常会获取json内容,将其写入一个简单的txt文件中,添加所需的行或值,然后将其转换为Json。

这通常让我避免任何问题