Zoho Sheet API使用json_data参数更新行时POST请求返回400错误求助
解决Zoho Sheet API更新行时的400 Bad Request错误
嘿,我看了你遇到的问题,这几个小疏漏导致了400错误,咱们一步步来修正:
1. 别把JSON数据塞URL里呀!
你现在把json_data放在了URL的查询参数中,但Zoho Sheet的这个API要求POST请求的JSON数据必须放在请求体里,URL只需要带method和worksheet_name这些元数据就行。记得设置请求头为Content-Type: application/json,不然服务器没法正确解析你的数据。
2. 同一行索引不能重复更新
你的JSON里两个条目都用了row_index:4,这就相当于要同时往第4行塞两组不同的数据,服务器肯定懵了。给每个条目分配一个唯一的行索引就行,比如把其中一个改成5:
[ {"Name":"Joe","Region":"South","Units":284, "row_index":4}, {"Name":"Beth","Region":"East","Units":290, "row_index":5} ]
3. URL编码的坑(如果非要放URL里的话)
虽然不推荐,但如果坚持把JSON放URL参数,得用正确的URL编码——你现在用的"是HTML实体,应该换成%22来表示双引号,还要确保整个字符串没有多余空格。不过真心建议用请求体,既避免编码麻烦,也不会碰到URL长度限制。
修正后的完整请求示例
请求地址
https://sheet.zoho.com/api/v2/p5gob655bd7aexxxxa446c9a7bfe03109aade3?method=worksheet.jsondata.set&worksheet_name=Sheet2
请求头
- 必须加:
Content-Type: application/json - 别忘了授权头:
Authorization: Zoho-oauthtoken 你的OAuth令牌(确保已经完成了认证流程)
请求体(就是上面修正后的JSON)
[ {"Name":"Joe","Region":"South","Units":284, "row_index":4}, {"Name":"Beth","Region":"East","Units":290, "row_index":5} ]
最后再确认下:你的Sheet2工作表确实存在,而且你有修改这个表的权限。如果还是报错,可以去Zoho的API日志里看看,那里会有更详细的错误细节帮你定位问题~
内容的提问来源于stack exchange,提问作者Nguyễn Lệ Việt Dũng
相关产品推荐
相关产品推荐

