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

使用Curl调用Github Content API上传文件时出现JSON解析错误

错误原因

你遇到的JSON解析错误是base64编码结果自带换行符导致的:

  • Linux系统下默认的base64命令会每输出76个字符插入1个换行符,换行符属于JSON字符串的非法未转义字符,直接拼接进JSON体后会破坏整体结构,触发解析失败。
  • 硬编码base64字符串时你默认去掉了所有换行,因此可以正常请求。

解决方案

方案1:直接生成无换行的base64编码

修改base64转码命令,禁用自动换行即可适配原有curl逻辑:

  • 适用Linux系统:
base64_logs=$(base64 -w 0 logs.tar.gz)
  • 适用macOS系统:
base64_logs=$(base64 -b 0 logs.tar.gz)

方案2:用jq生成JSON(更稳妥,规避所有转义问题)

如果后续有扩展payload的需求,推荐用jq工具自动生成标准JSON格式,完全避免手动拼接的格式错误:

# 生成无换行base64
base64_logs=$(base64 -w 0 logs.tar.gz)
# 用jq构造标准JSON体
json_payload=$(jq -n \
  --arg commit_msg "some message" \
  --arg file_content "$base64_logs" \
  '{"message": $commit_msg, "content": $file_content}')
# 发起curl请求
content_response=$(curl -v \
  -X PUT \
  -u some-user:$(params.git-token) \
  -H "Accept: application/vnd.github.v3+json" \
  $content_url \
  -d "$json_payload")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:06:02