你能告诉我下面的代码是否正常吗?
--MYBOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="sample.pdf";documentid=1
{
[B@17f7be7b
}
--MYBOUNDARY--
[B@17f7be7b是java为我的pdf返回的byteArray(pdf文件,只有"只是一个样本"作为内容)。我刚刚将该字节数组转换为字符串,并将其粘贴到此处。我得到
"errorCode": "UNABLE_TO_LOAD_DOCUMENT",
"message": "Unable to load the document. Unable to load Document(1). Error: the document is corrupt, rebuilding failed"
请帮助我找到正确的方法。
关于您在问题中发布的内容的格式/内容的一些评论:
- 字节流在请求中不应用大括号括起来。 即删除 { 和 }
- 在将字节流添加到 DocuSign 请求之前,请勿将其转换为字符串 - 字节流应直接写入请求中。
- 如果你有[B@17f7be7b请求应该包含文件的完整且未编码的*字节流*(不是表示字节流的字符串,而是字节流本身)。 您在问题中发布的值太短,无法成为PDF文件的有效/完整字节流。
您尚未发布相关代码,这使得调试更加困难,但从表面上看,您发布的文本至少存在两个问题。 一是文档字节不应用括号{
}
括起来。
接下来,您看起来没有正确编码文档字节。 PDF 原始字节不会以 [B@1
开头...... 如果没有看到您的代码,我只能说您需要查看如何将 PDF 字节写入请求。
如此多的帖子显示"文档字节转到此处"的原因是,在示例请求中拥有一堆随机的、非人类可读的字符是毫无用处的。 如果您是程序员,并且了解将文档字节写入流意味着什么,那么您应该不会理解任何问题。 下面是一个示例请求,其中再次省略了文档字节数:
POST https://demo.docusign.net/restapi/v2/accounts/123456/envelopes HTTP/1.1
X-DocuSign-Authentication: {"Username":"USERNAME","Password":"PASSWORD","IntegratorKey":"INTEGRATOR_KEY"}
Content-Type: multipart/form-data; boundary=BOUNDARY
Accept: application/json
Host: demo.docusign.net
Content-Length: 23414
Expect: 100-continue
Connection: Keep-Alive
--BOUNDARY
Content-Type: application/json
Content-Disposition: form-data
{
"status": "sent",
"emailBlurb": "Test Email Body",
"emailSubject": "Test Email Subject",
"documents": [
{
"name": "test.pdf",
"documentId": "1",
"order": "1"
}
],
"recipients": {
"signers": [
{
"email": "test@domain.com ",
"name": "John Doe",
"recipientId": "1",
"tabs": {
"signHereTabs": [
{
"xPosition": "100",
"yPosition": "100",
"documentId": "1",
"pageNumber": "1"
}
]
}
}
]
}
}
--BOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="document.pdf"; documentid="1"
[document bytes removed]
--BOUNDARY--
上述请求将发送一个签名请求,其中包含一个签名类型的收件人,并将在文档右侧100
像素和从文档左上角向下 100
像素的位置为他们放置一个签名选项卡。 查看 DocuSign API 演练以获取有关如何完成此操作的代码示例,特别是第 4 个演练文档请求签名向您展示了如何使用 6 种不同的语言(PHP
、Javascript
、Java
、C#
、Python
、Objective-C
)执行此操作,并附有说明:
http://iodocs.docusign.com/APIWalkthroughs