【发布时间】:2015-10-07 10:55:35
【问题描述】:
我对使用 Retrofit 的 Vimeo API 有疑问。我的意思是使用Retrofit 在 Vimeo 上上传MultipartTypedOutput。
这是一些代码:
public interface VimeoUploadApi {
@PUT("/upload")
void uploadVideo(@Header("Authorization") String header,
@Body MultipartTypedOutput body,
@Query("ticket_id") String ticket_id,
BaseCallback<VideoUploadedEvent> callback);
}
public VimeoUploadApi provideVimeoUploadApi(String url) {
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(url)
.setLogLevel(BuildConfig.DEBUG ? RestAdapter.LogLevel.FULL : RestAdapter.LogLevel.NONE)
.build();
return restAdapter.create(VimeoUploadApi.class);
}
private MultipartTypedOutput generateMultipartObject() {
MultipartTypedOutput multipartTypedOutput = new MultipartTypedOutput();
File file = new File(videoPath);
long totalSize = file.length();
FileProgressListener listener = new FileProgressListener(totalSize);
listener.setPath(videoPath);
multipartTypedOutput.addPart("video", new CountingTypedFile("video/mp4", file, listener));
return multipartTypedOutput;
}
然后调用:
provideVimeoUploadApi(getUploadUrl(secure_link)).uploadVideo(
"Authorization: Bearer " + Environment.VIMEO_TOKEN,
generateMultipartObject(),
event.getTicket_id(),
new BaseCallback<VideoUploadedEvent>()
);
当我上传视频时,我收到如下错误:
写入错误:ssl=0x98cc2800:系统调用期间的 I/O 错误,连接 由同行重置 retrofit.RetrofitError: 写入错误: ssl=0x98cc2800: 系统调用期间的 I/O 错误,对等方重置连接
原因:javax.net.ssl.SSLException:写入错误:ssl=0x98cc2800: 系统调用期间的 I/O 错误,对等方重置连接
有办法解决吗?
【问题讨论】:
-
这个 CountingTypedFile 是从哪里来的?我在改造中找不到它。您能否也为您的 getUploadUrl(secure_link) 方法添加代码?
-
你能再添加一些代码吗?你有没有成功checking the user's quota 确保你正确使用了 OAuth?
-
我刚刚离开 Retofit 并使用简单的 HttpUrlConnection。现在开始工作了。
标签: android ssl retrofit vimeo-api