【问题标题】:Powershell Invoke-WebRequest XML dataPowershell Invoke-WebRequest XML 数据
【发布时间】:2020-03-17 05:54:49
【问题描述】:

我有一个主要的 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" ?>

【问题讨论】:

  • 没有人给我任何提示吗?

标签: json xml powershell


【解决方案1】:

我一般是获取json内容,写成一个简单的txt文件,加上我需要的行或者值,然后转换成Json。

这通常可以让我避免任何问题

【讨论】:

  • 我不想创建任何文件。这些数据每小时可能会被发送到 PowerBI 云服务 4 次。
  • 当代码有效时,我想获取更多内容,而不仅仅是 adminstatus,但 adminstatus 是纯文本(如上所示)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-22
  • 2012-07-26
  • 2021-10-19
  • 1970-01-01
相关资源
最近更新 更多