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

使用cURL调用SharePoint API遇400错误,求URL编码解决方案

解决cURL请求SharePoint REST API返回400 Bad Request的问题

让我来帮你理清这个问题——你现在的核心错误是把SharePoint REST API的路径部分错误地当成了GET查询参数来处理,这才导致了400请求错误。

问题分析

你原本的目标API路径是:

.../_api/web/lists/GetByTitle('titles list')/items

但你用-G和--data-urlencode参数时,会把这些拆分的部分转换成URL的查询参数(也就是?后面的内容),实际发送的请求URL会变成类似这样:

.../_api/web/lists/GetByTitle?('titles+list')=&/items=

这完全不符合SharePoint REST API的路径规则,自然会返回400错误。

正确的cURL命令

你需要直接把完整的API路径作为请求URL,不需要拆分。如果URL里包含空格、括号这类特殊字符,用单引号或双引号包裹整个URL即可:

curl -v -L --ntlm --user user:password -H 'Accept: application/json;odata=verbose' ".../_api/web/lists/GetByTitle('titles list')/items"

额外说明

  • 如果你在Windows命令提示符下执行,可能需要把单引号换成双引号,同时内部的单引号可以保留:
    curl -v -L --ntlm --user user:password -H "Accept: application/json;odata=verbose" ".../_api/web/lists/GetByTitle('titles list')/items"
    
  • 也可以手动对URL里的空格进行编码(替换成%20),这样不需要依赖引号的处理:
    curl -v -L --ntlm --user user:password -H 'Accept: application/json;odata=verbose' ".../_api/web/lists/GetByTitle('titles%20list')/items"
    
  • 确认你的user:password是有权限访问该SharePoint列表的账号凭据,--ntlm参数适用于NTLM认证的环境,如果你的SharePoint用的是其他认证方式(比如OAuth),可能需要调整认证参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:09:50