簡體   English   中英

Docusign:在來自 Java 的多部分請求中創建包含多個文檔的信封

[英]Docusign: creating envelope with multiple documents in multipart request from Java

Docusign Java SDK 沒有內置支持創建包含多個二進制文檔的信封。 這對用戶來說很麻煩。 詢問的人已被定向到使用 Java 的本機 HttpsUrlConnection 的一次性示例代碼: Docusign Multipart Request To Create Envelope using java SDK (此源的當前鏈接在這里: https://raw.githubusercontent.com/docusign/code -examples-java/ee8489ca749a007767f07e1871ec9be100b5abb2/src/main/java/com/docusign/controller/eSignature/services/SendBinaryDocsService.java ) or raw HTTP request as at Docusign - send envelope REST API (POST multipart/form-data ) . 示例代碼使用原始 HttpsURLConnection class 發出 HTTP 請求,不同於 ApiClient 使用 Jersey 發出請求。

為什么這個常見用例不只是內置到 SDK 中? SDK 實際上在 ApiClient 中有一些多部分支持。java https://github.com/docusign/docusign-esign-java-client/blob/master/src/main/java/com/docusign/esign/client/ApiClient。 java serialize() 和 invokeAPI() 方法,使用 Jersey 部分。 請注意,使用了 FormDataContentDisposition,這將導致各個部分的名稱為“form-data”。 此路由也不可用於 EnvelopesApi.createEnvelope() 方法。

很容易直接調用 ApiClient.invokeAPI() 來嘗試使用它,但是以“// Generate and add Content-Disposition header as per RFC 6266”開頭的代碼似乎覆蓋了每個“實體”個別部分,所以這可能不適用於多個部分?

API 的文檔可在此處找到: https://developers.docusign.com/docs/esign-rest-api/how-to/send-binary/描述和示例代碼均使用“Content-Disposition: file.. 。”而 web 規范指出,對於多部分主體的每個單獨部分,“第一個指令始終是表單數據”( https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content -Disposition ) - ApiClient 本身為自己的多部分支持所做的。

ETA:實驗表明使用“Content-Disposition:form-data”實際上工作正常

客戶端還被要求在 Content-Disposition 中包含“documentid=N”,但至少在使用 Jersey 的 FormDataContentDisposition 時似乎很難添加此額外參數。 如果您查看 glassfish FormDataContentDisposition / ContentDisposition 的源代碼,您會發現只有固定的參數列表將包含在字符串緩沖區中。

如果我們能得到: 將對 SDK 用戶有很大幫助:

  • 官方支持在官方 SDK 中創建包含多個二進制文檔的信封
  • Content-Disposition 專有定制的替代方案 header

這將使 Java SDK 消費者的生活更加輕松。 如果我在這里有任何錯誤,請道歉。

一個寫得很好的問題。 要更好地注冊您的 sdk 增強請求,請參閱feedback.docusign.com並通過您的 DocuSign 銷售人員提出請求。

SDK 是從我們的 swagger 文件自動生成的。 所以你的請求將是一個大項目,目前沒有計划。

雖然使用 base64 編碼上傳效率低下,但效果很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM