使用DocuSign REST API发送信封遇INVALID_CONTENT_TYPE错误求助
解决DocuSign API的INVALID_CONTENT_TYPE错误
这个错误我之前也碰到过,核心问题是你的multipart/form-data请求的第一个部分(part[0])没有设置正确的Content-Type——DocuSign API明确要求这个部分必须是application/json或application/xml格式的信封定义,而你的请求里这部分的类型不符合要求。
下面是在Postman里修正请求的具体步骤:
1. 正确设置请求的Content-Type
别手动在请求头里写multipart/form-data,按以下操作来:
- 切换到Postman的Body标签页
- 选择
form-data选项,Postman会自动帮你生成带正确boundary参数的Content-Type头,手动写反而容易出错。
2. 配置第一个part(信封定义)
- 点击
Add Row添加新part - Key可以填
envelopeDefinition(名称不强制,但用这个方便识别) - 类型选
raw,右侧格式下拉框选JSON - 粘贴你的信封定义JSON,示例如下:
{ "emailSubject": "请签署这份文档", "recipients": { "signers": [ { "email": "signer@example.com", "name": "张三", "recipientId": "1", "tabs": { "signHereTabs": [ { "documentId": "1", "pageNumber": "1", "xPosition": "150", "yPosition": "200" } ] } } ] }, "status": "sent" } - 点击part右侧的
Headers按钮,确认Content-Type是application/json(选JSON格式后Postman会自动添加)
3. 添加文档part
- 再添加一个新part
- Key填
document1(按文档顺序命名,比如document2、document3...) - 类型选
File,点击Select Files上传你的文档(比如PDF) - 点击这个part的
Headers按钮,添加Content-Disposition头,值为file; filename="你的文档名.pdf"; documentid="1"——这里的documentid要和信封JSON里的documentId完全对应。
4. 验证请求结构
你可以在Postman的Preview标签页查看最终的multipart结构,应该类似这样:
--------------------------1234567890ABCDEF Content-Disposition: form-data; name="envelopeDefinition" Content-Type: application/json { "emailSubject": "请签署这份文档", "recipients": { "signers": [ { "email": "signer@example.com", "name": "张三", "recipientId": "1", "tabs": { "signHereTabs": [ { "documentId": "1", "pageNumber": "1", "xPosition": "150", "yPosition": "200" } ] } } ] }, "status": "sent" } --------------------------1234567890ABCDEF Content-Disposition: form-data; name="document1"; filename="test.pdf"; documentid="1" Content-Type: application/pdf [PDF文件的二进制内容] --------------------------1234567890ABCDEF--
常见坑点避坑
- 信封JSON和文档必须分开放在不同的part里,不能混在一起
- 第一个part必须是信封定义的JSON,不能把文档放在第一个位置
- 确保信封JSON里的
documentId和文档part的documentid参数完全一致 - 不要手动编辑请求头里的
Content-Type,让Postman自动生成,否则容易出现boundary不匹配的问题
内容的提问来源于stack exchange,提问作者Roshan007
相关产品推荐
相关产品推荐

