Rest 对Wiki页面执行PUT请求时清空正文内容

Rest 对Wiki页面执行PUT请求时清空正文内容,rest,azure,powershell,azure-devops,Rest,Azure,Powershell,Azure Devops,我正在尝试动态更新Azure DevOps Wiki页面,每当向存储库引入更改时,页面顶部都会显示最新的提交。 当我尝试将提交历史记录放入Wiki页面时,正文中的内容字段为空 请求通过Powershell完成,如下所示: function postToWiki($Commits) { $wikiUrl = "https://dev.azure.com/$organization/$project/_apis/wiki/wikis/Ekonomiredovisning.wiki/pag

我正在尝试动态更新Azure DevOps Wiki页面,每当向存储库引入更改时,页面顶部都会显示最新的提交。 当我尝试将提交历史记录放入Wiki页面时,正文中的内容字段为空

请求通过Powershell完成,如下所示:

function postToWiki($Commits) {

    $wikiUrl = "https://dev.azure.com/$organization/$project/_apis/wiki/wikis/Ekonomiredovisning.wiki/pages?path=MyWikiPage&api-version=5.0"
    $Etag = getWikiPageVersion
    $headers = @{
    Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"; 
    'If-Match' = $Etag}
    $body = @{ content = $Commits }
    $json = $body | ConvertTo-Json

    Invoke-WebRequest -Uri $wikiUrl -Headers $headers -Body $json -ContentType "application/json" -Method Put
}
其他有用的信息:

  • 当我发送更简单的字符串,如“Hello”时,它就会工作
  • 根据,发送的JSON是有效的
  • $Commit变量相当大,最多可以有6000行

    • 我今天也有同样的问题。我的正文包含特殊的HTML字符,这些字符不会在请求中转义

      试着逃离特殊的咒语(è…)。 在PowerShell中,可以使用以下程序集:

      Add-Type -AssemblyName System.Web
      $encodedBody = [System.Web.HttpUtility]::HtmlEncode($Commits)
      
      结果:

      
      # Construct the wiki REST URI 
      # $uri = $WikiUri +$WikiPath + $($contentPackage.version)
      $uri = "$($env:WikiUri)$($contentPackage)&api-version=5.0"
      
      # Encode and convert to json
      Add-Type -AssemblyName System.Web
      $encodedContent = [System.Web.HttpUtility]::HtmlEncode($content)
      
      $data = @{ Content=$encodedContent; } | ConvertTo-Json;
      
      # Set Request
      $params = @{uri = "$($uri)";
        Method = 'PUT';
        Headers = $header;
        ContentType = "application/json";
        Body = $data;
      }
      
      # Call
      Invoke-WebRequest @params 
      

      我试图做一些类似的事情,在维基上获取一个页面的内容。有一个名为includeContent的标志,它自动默认为false,需要为true

      我的休息电话从


      这对我不起作用。我得到了同样的空内容。显然还有其他原因。这是个问题吗?还是你在回答这个问题?请澄清。我想你实际上是想回答,但你的措辞我听不懂。。。。你能写一些像“像这样做……将通过……解决问题,因为……”这样的话吗