2015-01-02 81 views
0

這裏是我的箱載POST將文件上傳到特定文件夾:HTTP 500試圖上傳文件時

POST /api/2.0/files/content HTTP/1.1 
Authorization: Bearer ACCESS_TOKEN 
Accept: application/json 
User-Agent: SOASoftware/7-HttpCore/4 
Transfer-Encoding: chunked 
Content-Type: multipart/form-data 
Host: upload.box.com 
Connection: Keep-Alive 

attributes='{"name":"lead.txt", "parent":{"id":"2890481033"}}'&file=C:\SOA\Software\sm70\instances\nd\leads.txt 
-----------------------------9051914041544843365972754266 
<file-data> 
-----------------------------9051914041544843365972754266 

,但我得到這種反應,這並不能幫助我瞭解什麼問題是:

HTTP/1.1 500 
Age: 0 
Date: Fri, 02 Jan 2015 09:06:09 GMT 
Connection: close 

EMPTY MESSAGE 

任何人都可以告訴我我做錯了什麼請求導致HTTP 500,請嗎?

回答

0

看起來您的多部分請求格式不正確。最簡單的方法是到use an SDK或找到一個可以爲你構建多部分請求的庫。

如果你真的想手動構建請求,那麼這裏的上傳請求應該是什麼樣子的例子:

POST https://upload.box.com/api/2.0/files/content HTTP/1.1 
Host: upload.box.com 
Authorization: Bearer ACCESS_TOKEN 
Content-Length: 346 
Content-Type: multipart/form-data; boundary=------------------------393329c2f2238ab4 

--------------------------393329c2f2238ab4 
Content-Disposition: form-data; name="attributes" 

{"name":"my-file.txt", "parent":{"id":"0"}} 
--------------------------393329c2f2238ab4 
Content-Disposition: form-data; name="file"; filename="my-file.txt" 
Content-Type: application/octet-stream 

<file-data> 

--------------------------393329c2f2238ab4-- 
+0

由於格雷格!我會尋找一個圖書館,雖然我的解決方案是基於手動啓動身體,所以不必修改它以發送正確的身體。我使用的是JavaScript,因此SDK沒有幫助。 –

+0

格雷格,我已經做了一些更多的測試,並在Content API類型頭上添加邊界參數,導致來自BOX API的HTTP 400(錯誤請求)。刪除該參數給我一個500格式如上。我真的需要Box API的人來介入! –

+0

我只是再次檢查,上面的例子應該成功上傳文件。確保您的請求使用正確的Content-Length,Content-Disposition和Content-Type標頭格式正確。 [API文檔](https://developers.box.com/docs/#files-upload-a-file)也有一個cURL片段,可用於測試上傳。 – Greg