调用eSignLive Rest API添加字段报错:Failed to deserialize json string to target
问题解决:给eSignLive包添加字段的API修正方案
错误原因分析
你遇到的"Invalid JSON"和反序列化失败错误,核心问题有两个:
- 把请求体(字段的JSON数据)错误放在了
-H(请求头)参数里,-H是用来定义HTTP请求头的,不能用来传递业务数据 - 缺少
Content-Type: application/json请求头,服务器无法识别你发送的数据格式
修正后的curl命令
curl -X 'POST' \ 'https://sandbox.esignlive.com/api/packages/WlnHZN0WH1xKX6GHGTFbQtGPBJg=/documents/cec7f9fa480589d46a91944ca2b4e8921df2aaef094ae042/approvals/MfSNKUFMhHIB/fields' \ -H 'accept: application/json' \ -H 'Authorization: Basic 你的Base64编码API密钥' \ -H 'Content-Type: application/json' \ -d '{ "id": "date_field", "name": "date_field", "type": "INPUT", "subtype": "LABEL", "value": "2023-01-01", "page": 0, "width": 269.9928097345133, "height": 59.986172566371685, "top": 694.5371497050148, "left": 275.8079830383481 }'
关键修正点说明
- 添加
Content-Type: application/json请求头:明确告诉服务器请求体是JSON格式 - 将原JSON内容从
-H移到-d参数后:-d是curl用来传递POST请求体的参数 - 修正Authorization头:Basic认证需要把你的API密钥加上冒号(
api_key:)后做Base64编码,替换命令里的你的Base64编码API密钥
新手Rest API使用建议
- 分清请求头和请求体:请求头(
-H)用来传递认证、数据类型这类元数据;请求体(-d)用来传递业务数据(比如字段信息) - 必设Content-Type:发送JSON时必须设置
Content-Type: application/json,否则服务器会解析失败 - 校验JSON格式:写JSON时要注意引号闭合、逗号分隔,不确定的话可以用JSON校验工具检查
- Postman使用技巧:在Postman里测试时,选POST方法后切换到
Body标签,选raw并设置格式为JSON,粘贴JSON内容;在Headers标签里添加Authorization和Content-Type,比直接复制curl更直观不易错 - 优先查官方文档:eSignLive的官方API文档会明确每个接口的参数要求、请求格式,遇到问题先对照文档核对
内容的提问来源于stack exchange,提问作者user112a2
相关产品推荐
相关产品推荐

