我正在尝试使用cfhttp将文件上传到dropbox api。我从Dropbox收到错误,说明Content-Type不正确:
错误的HTTP“Content-Type”标头: “应用程序/八位字节流,多部分/格式的数据; boundary = ----------------------------- 7d0d117230764“。期待其中一个 “application / octet-stream”,“text / plain; charset = dropbox-cors-hack”。
在我看来,ColdFusion正在将multipart.form-data附加到我在cfhttpparam标头中定义的内容类型。我不知道如何防止这种情况。我使用下面的代码:
<cfhttp method="post" url="https://content.dropboxapi.com/2/files/upload" result="uploadFile" multipart="no">
<cfhttpparam type="header" name="Authorization" value="Bearer #DropboxAccessToken#">
<cfhttpparam type="header" name="Dropbox-API-Arg" value="#serializeJSON(stFields)#">
<cfhttpparam type="header" name="Dropbox-API-Select-User" value="#DropboxMemberID#">
<cfhttpparam type="header" name="Content-Type" value="application/octet-stream">
<cfhttpparam type="file" name="1_1036.gif" file="C:\1_1036.gif">
</cfhttp>
关于可能发生什么的任何想法?
答案 0 :(得分:0)
&#34; multipart / form-data&#34;可能会自动添加,因为使用了type="file"
。如果API期望内容类型&#34; application / octet-stream&#34;,则表明它希望文件数据通过http请求主体上传,而不是作为命名的&#34;文件&#34;领域。而不是type="file"
尝试使用:
<cfhttpparam type="body" value="#FileReadBinary('C:\1_1036.gif')#">