Dailymotion上传错误"没有内容"

时间:2016-07-11 11:51:54

标签: java dailymotion-api

我开发了一个能够在Dailymotion上传视频的网络应用程序,所有这些都是在1年内发现的,当我在Dailymotion上传视频时,我发现最近出现了错误。

{
"error": "missing content"
"seal": "540f4ad5a0f9c6a7e85a46be98361581"
}

我使用java和lib" org.apache.http"我打电话给每日运动。

我的代码看起来像这样:

Path temp = Files.createTempFile(multipartFile.getName(), "." + suffix);
            multipartFile.transferTo(temp.toFile());
            MultipartEntityBuilder builder = MultipartEntityBuilder.create();
            builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
            builder.addPart(multipartFile.getOriginalFilename(), new FileBody(temp.toFile(),
                    ContentType.APPLICATION_OCTET_STREAM, multipartFile.getOriginalFilename()));
            httpPost.setEntity(builder.build());
            try (CloseableHttpClient httpclient = HttpClients.createDefault();
                    CloseableHttpResponse response = httpclient.execute(httpPost);) {
                HttpEntity entity = response.getEntity();
                ObjectMapper mapper = new ObjectMapper();
                DailymotionUploadVideoResponse dmUploadResponse = mapper.readValue(entity.getContent(),
                        DailymotionUploadVideoResponse.class);
                // Delete temp file after upload
                Files.deleteIfExists(temp);
                if (dmUploadResponse.getError() != null) {
                    throw new DailymotionJsonException(dmUploadResponse.getError().getMessage());
                }
                EntityUtils.consume(entity);
                response.close();

通过dailymotion检索网址:

http://upload-12.dc3.dailymotion.com/upload?uuid=035e365c5b2355616e381f43c1b2b391&seal=edad1d3ad9e348c65e975582571e5815

POST请求的标头:

Content-Disposition:
form-data; 
name="2015-07-16-192550-1.webm"; 
filename="2015-07-16-192550-1.webm", 
Content-Type: application/octet-stream, 
Content-Transfer-Encoding: binary

我不明白为什么我做错了。

我通过curl测试,我有同样的错误。

Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryImx1443wQZZBF0Fb
Content-Length: 1398401
Source message

POST /upload?uuid=035e365c5b2355616e381f43c1b2b391&seal=edad1d3ad9e348c65e975582571e5815 HTTP/1.1
 HOST: upload-12.dc3.dailymotion.com
 content-type: multipart/form-data; boundary=----WebKitFormBoundaryImx1443wQZZBF0Fb
 content-length: 1398401

 ------WebKitFormBoundaryImx1443wQZZBF0Fb
 Content-Disposition: form-data; name="2015-07-16-192550-1.webm"; filename="2015-07-16-192550-1.webm"
 Content-Type: video/webm

1 个答案:

答案 0 :(得分:0)

API dailymotion已更改,更改代码

builder.addPart(multipartFile.getOriginalFilename(), new FileBody(temp.toFile(),
                    ContentType.APPLICATION_OCTET_STREAM, multipartFile.getOriginalFilename()));

by:

builder.addPart("file", new FileBody(temp.toFile(),
                        ContentType.APPLICATION_OCTET_STREAM, multipartFile.getOriginalFilename()));