通过REST API将文件上传到Circuit Conversation中-后端上传

时间:2019-08-28 02:36:07

标签: circuit-sdk

我无法使用文件API上传文件

我已经在POSTMAN和Curl中尝试了此HTTP请求,但均未成功,并且两者的结果相同: Attach a file (picture) to a conversation

您能与Postman分享一个真实的工作示例,还是将Postman转换为我可以导入的Curl代码段?

以下返回“设置了错误的Content-Disposition标头”

POST /rest/v2/fileapi HTTP/1.1
Host: circuitsandbox.net
Authorization:  Bearer MyTokenCodeGoesHere
Content-Length:  100
Content-Disposition:  attachment; filename="test.txt"
Cache-Control:  no-cache

MyBinaryCodeGoesHere

上面看起来像是卷曲的

curl --location --request POST "https://circuitsandbox.net/rest/v2/fileapi" \
    --header "Authorization:  Bearer MyTokenCodeGoesHere" \
    --header "Content-Length:  100" \
    --header "Content-Disposition:  attachment; filename=\"test.txt\"" \
    --header "Cache-Control:  no-cache" \
    --header "MyBinaryCodeGoesHere: "

使用Host: local.circuit.com而不是Host: circuitsandbox.net进行测试,没有任何联系,我认为这只是一个例子,只是为了以防万一。

预期:

{"fileId":"fb211fd6-df53-4b82-824d-986dac47b3e7","attachmentId":"ZmIyMT..."}

实际结果:

  

“设置了错误的Content-Disposition标头”

2 个答案:

答案 0 :(得分:1)

这是一个卷曲示例,发布了一个json文档:

curl -X POST https://circuitsandbox.net/rest/v2/fileapi \
 -H 'authorization: Bearer <token>' \
 -H 'cache-control: no-cache' \
 -H 'content-disposition: attachment; filename="test.json"' \
 -H "Content-Type: application/json" \
 -d '{"key":"val"}'

使用邮递员,您可以在正文的二进制标签中轻松设置要上传的文件。您唯一需要的标题是“ Authorization”和“ Content-Disposition”。 “ Content-Disposition”标头的格式为:附件; filename =“ test.log”

在您的示例中,数据看起来不正确。不应在标头中传递它。

答案 1 :(得分:0)

只为可能会有用的人加起来。

这是我的HTTP代码:

POST /rest/v2/fileapi HTTP/1.1
Host: circuitsandbox.net
Authorization:  Bearer <token>
Cache-Control:  no-cache
Content-Disposition:  attachment; filename="test.txt"
Content-Type: text/plain

{"src":"/C:/Temp/test.txt"}

这是我的Curl代码:

curl --location --request POST "https://circuitsandbox.net/rest/v2/fileapi" \
    --header "Authorization:  Bearer <token>" \
    --header "Cache-Control:  no-cache" \
    --header "Content-Disposition:  attachment; filename=\"test.txt\"" \
    --header "Content-Type: text/plain" \
    --data-binary "@C:\Temp\test.txt"

对于任何人来说,这是MIME类型的列表,您的内容类型会根据您要上载的文档类型而变化:

https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types

有关-d(--data-binary):https://bagder.gitbooks.io/everything-curl/http-post.html

的更多信息