You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用GetFileByServerRelativePath/CopyTo创建SharePoint页面时触发400错误

解决SharePoint API复制文件时的InvalidClientQueryException错误

我在Power Automate中创建了一个流,目的是根据SharePoint列表项生成新页面,第一步需要复制模板文件并以列表项标题命名为新页面。但调用SharePoint REST API时反复返回400错误,提示Microsoft.SharePoint.Client.InvalidClientQueryException,开发环境无权限限制,以下是我的请求输入和返回输出:

请求输入

{
    "host": {
        "connectionReferenceName": "shared_sharepointonline",
        "operationId": "HttpRequest"
    },
    "parameters": {
        "dataset": "https://myTenant.sharepoint.com/sites/KSDTestSite",
        "parameters/method": "POST",
        "parameters/uri": "_api/web/GetFileByServerRelativePath(‘/sites/KSDTestSite/SitePages/Templates/KSD-Template.aspx’)/copyTo(‘/sites/KSDTestSite/SitePages/Microsoft_Security_Update_and_EOL_Notification.aspx')",
        "parameters/headers": {
            "Accept": "application/json;odata=verbose",
            "content-type": "application/json;odata=verbose"
        }
    }
}

返回输出

{
    "statusCode": 400,
    "headers": {
        "Pragma": "no-cache",
        "Cache-Control": "no-store, no-cache",
        "Set-Cookie": "ARRAffinity=fa5ce4b13622b0d3617b4398e823c470b20f49c8905d33671c1e72b454b4c01b;Path=/;HttpOnly;Secure;Domain=sharepointonline-ncus.azconn-ncus-001.p.azurewebsites.net,ARRAffinitySameSite=fa5ce4b13622b0d3617b4398e823c470b20f49c8905d33671c1e72b454b4c01b;Path=/;HttpOnly;SameSite=None;Secure;Domain=sharepointonline-ncus.azconn-ncus-001.p.azurewebsites.net",
        "x-ms-request-id": "86e9b9a0-403e-3000-ac9a-13008bc3168f",
        "Strict-Transport-Security": "max-age=31536000; includeSubDomains",
        "X-Content-Type-Options": "nosniff",
        "X-Frame-Options": "DENY",
        "Timing-Allow-Origin": "*",
        "x-ms-apihub-cached-response": "true",
        "x-ms-apihub-obo": "false",
        "Date": "Mon, 05 Jun 2023 16:37:17 GMT",
        "Content-Length": "750",
        "Content-Type": "application/json",
        "Expires": "-1"
    },
    "body": {
        "status": 400,
        "message": "The expression \"web/GetFileByServerRelativePath(‘/sites/KSDTestSite/SitePages/Templates/KSD-Template.aspx’)/copyTo(‘/sites/KSDTestSite/SitePages/Microsoft_Security_Update_and_EOL_Notification.aspx')\" is not valid.\r\nclientRequestId: 5b37d689-d8b9-439f-af4f-2005d6b07e0d\r\nserviceRequestId: 86e9b9a0-403e-3000-ac9a-13008bc3168f",
        "source": "https://myTenant.sharepoint.com/sites/KSDTestSite/_api/web/GetFileByServerRelativePath(%E2%80%98/sites/KSDTestSite/SitePages/Templates/KSD-Template.aspx%E2%80%99)/copyTo(%E2%80%98/sites/KSDTestSite/SitePages/Microsoft_Security_Update_and_EOL_Notification.aspx')",
        "errors": [
            "-1",
            "Microsoft.SharePoint.Client.InvalidClientQueryException"
        ]
    }
}

解决思路

  • 替换中文单引号为英文单引号:从错误信息的source字段可见,URI中的中文单引号被编码成%E2%80%98,导致SharePoint API无法正确解析表达式。将所有‘’替换为''是首要修复步骤。
  • 简化Server Relative Path:dataset已指定站点根地址,GetFileByServerRelativePath中的路径可使用相对站点的路径(如/SitePages/Templates/KSD-Template.aspx),无需重复/sites/KSDTestSite,避免路径解析冗余。
  • 验证路径有效性:直接在浏览器中访问修正后的API端点(需先登录目标站点),比如https://myTenant.sharepoint.com/sites/KSDTestSite/_api/web/GetFileByServerRelativePath('/SitePages/Templates/KSD-Template.aspx'),确认能正常返回文件信息,排除路径不存在的问题。
  • 处理目标文件冲突:如果目标路径下已存在同名文件,copyTo默认会报错。可添加第二个参数overwrite=true,修改为copyTo('/SitePages/目标文件名.aspx', true)来覆盖已存在文件。
  • 补充安全验证头:若以上步骤无效,尝试添加X-RequestDigest请求头,值通过调用/_api/contextinfo接口获取,确保请求通过SharePoint的安全验证。

修正后的请求示例

{
    "host": {
        "connectionReferenceName": "shared_sharepointonline",
        "operationId": "HttpRequest"
    },
    "parameters": {
        "dataset": "https://myTenant.sharepoint.com/sites/KSDTestSite",
        "parameters/method": "POST",
        "parameters/uri": "_api/web/GetFileByServerRelativePath('/SitePages/Templates/KSD-Template.aspx')/copyTo('/SitePages/Microsoft_Security_Update_and_EOL_Notification.aspx', true)",
        "parameters/headers": {
            "Accept": "application/json;odata=verbose",
            "content-type": "application/json;odata=verbose"
        }
    }
}

内容的提问来源于stack exchange,提问作者Ian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 15:12:51