2013-12-11 53 views
1

我想在DocuSign中使用DocuSign REST API創建多個文檔中的信封,我正在使用多部分/表單數據請求使用JSON來定義信封的屬性,我檢查我的JSON,我認爲它是確定的。在此之下,我定義了一個多部分/混合部分,其中我設置了文檔的標題和PDF字節。我收到一個錯誤代碼爲「NO_DOCUMENT_RECEIVED」的錯誤代碼,並且顯示消息「文檔元素不包含編碼文檔,或者編碼有問題」。我發佈請求結果從下面小提琴手:通過DocuSign Rest API創建DocuSign信封時出錯(包含多個文檔和多個收件人)

//請求

POST https://demo.docusign.net/restapi/v2/accounts/295724/envelopes HTTP/1.1 
X-DocuSign-Authentication: {"Username":"email","Password":"password","IntegratorKey":"key"} 
Content-Type: multipart/form-data; boundary=9a56da749dc04804819460f6499ab80b 
Accept: application/json 
Host: demo.docusign.net 
Content-Length: 31476 
Expect: 100-continue 

--9a56da749dc04804819460f6499ab80b 
Content-Type: application/json 
Content-Disposition: form-data 

{"emailBlurb":"EMAIL BODY HERE OK OK","emailSubject":"EMAIL SUBJECT HERE IS MANDATORY","status":"sent","documents":[{"documentId":1,"name":"ABC.pdf"},{"documentId":2,"name":"AB.pdf"}],"recipients":{"signers":[{"email":"[email protected]","name":"Dubhe","recipientId":"1","routingOrder":"1"},{"email":"[email protected]","name":"DubheF","recipientId":"2","routingOrder":"1"}]}} 
--9a56da749dc04804819460f6499ab80b 
Content-Disposition: form-data 
Content-Type: multipart/mixed; boundary=e8bc9555e9634110bba63547b2552460 

--e8bc9555e9634110bba63547b2552460 
Content-Type: application/pdf 
Content-Disposition: file; filename=ABC.pdf; documentId=1 

<PDF Bytes Document 1> 
--e8bc9555e9634110bba63547b2552460 
Content-Type: application/pdf 
Content-Disposition: file; filename=AB.pdf; documentId=2 

<PDF BytesDocument Two> 
--e8bc9555e9634110bba63547b2552460-- 
--9a56da749dc04804819460f6499ab80b-- 
+0

嗯表面上我沒有看到任何明顯的錯誤,你確定內容長度值設置正確嗎?你也是積極的兩個文件都是有效的PDF文件? – Ergin

回答

0

你不應該需要定義一個第二邊界(或任何後續引用到第二邊界的)這些行:

Content-Disposition: form-data 
Content-Type: multipart/mixed; boundary=e8bc9555e9634110bba63547b2552460 

嘗試移除(以及所有後續引用到邊界e8bc9555e9634110bba63547b2552460),讓你的要求是這樣的:

POST https://demo.docusign.net/restapi/v2/accounts/295724/envelopes HTTP/1.1 
X-DocuSign-Authentication: {"Username":"email","Password":"password","IntegratorKey":"key"} 
Content-Type: multipart/form-data; boundary=9a56da749dc04804819460f6499ab80b 
Accept: application/json 
Host: demo.docusign.net 
Content-Length: 31476 
Expect: 100-continue 

--9a56da749dc04804819460f6499ab80b 
Content-Type: application/json 
Content-Disposition: form-data 

JSON_REQUEST_BODY_HERE 
--9a56da749dc04804819460f6499ab80b 
Content-Type:application/pdf 
Content-Disposition: file; filename="ABC.pdf"; documentid=1 

DOCUMENT_1_BYTES_HERE 
--9a56da749dc04804819460f6499ab80b 
Content-Type:application/pdf 
Content-Disposition: file; filename="AB.pdf"; documentid=2 

DOCUMENT_2_BYTES_HERE 
--9a56da749dc04804819460f6499ab80b-- 
+0

有趣的是,我最近已經測試過這個,並且它已經成功地使用了兩個邊界和多部分/混合頭部,就像問題一樣。我沒有機會測試你在這裏列出的方式,明天就會這樣做...... – Ergin

+0

嗯......我從來沒有用問題顯示的兩個邊界來測試。我一直按照我在答案中建議的方式完成,而且這對我來說一直都很有效 - 昨晚進行了另一項測試以確認。只需在請求頭中指定一個邊界,然後是一個多部分消息,其中每個部分都在邊界之前 - 第一部分包含JSON正文,並且每個後續部分都包含文檔的字節。 –

+0

Kim Brandl感謝您在嘗試和錯誤一週後終於獲得了巨大的幫助,我的代碼已成功運行。還要感謝@Ergin這是基於以前我發佈的新記錄,您的建議也非常有幫助。 – dhernandez

相關問題