【问题标题】:Unable to retrieve proper error from sharepoint using invoke-webrequest/restmethod无法使用 invoke-webrequest/restmethod 从共享点检索正确的错误
【发布时间】:2019-12-16 08:00:13
【问题描述】:

使用 invoke-webrequest 将文档上传到 sharepoint 有效,但在使用 overwrite=false 时返回无用的错误

我已经使用邮递员发送相同的请求并返回一个共享点异常错误

<m:error xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
    <m:code>-2130575257, Microsoft.SharePoint.SPException</m:code>
    <m:message xml:lang="en-US">A file with the name docs/a.txt already exists. It was last modified by [redacted] on 08 Aug 2019 15:23:02 +0100.</m:message>
</m:error>
try
{
 Invoke-webrequest -method post -uri $uri -infile $fullpath -headers $Headers -credential $credential
}
catch
{
    $errors = $_.exception
}

我没有收到邮递员中的错误,而是收到“远程服务器返回错误:(400) 错误请求。”

【问题讨论】:

    标签: rest powershell sharepoint


    【解决方案1】:

    我按照这里建议的 parserror 函数解决了这个问题

    How to get Powershell Invoke-Restmethod to return body of http 500 code response

    function ParseErrorForResponseBody($Error) {
        if ($PSVersionTable.PSVersion.Major -lt 6) {
            if ($Error.Exception.Response) {  
                $Reader = New-Object System.IO.StreamReader($Error.Exception.Response.GetResponseStream())
                $Reader.BaseStream.Position = 0
                $Reader.DiscardBufferedData()
                $ResponseBody = $Reader.ReadToEnd()
                if ($ResponseBody.StartsWith('{')) {
                    $ResponseBody = $ResponseBody | ConvertFrom-Json
                }
                return $ResponseBody
            }
        }
        else {
            return $Error.ErrorDetails.Message
        }
    }
    
    try
    {
     Invoke-restmethod -method post -uri $uri -infile $fullpath -headers $Headers -credential $credential
    }
    catch
    {
        ParseErrorForResponseBody($_)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-26
      • 2019-11-23
      • 2016-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多