我让我的用户在其图库中选择一张图片,保存其Uri
,设置标题和说明,并希望使用Imgur的API匿名上传,this endpoint使用{{ 1}}。
到目前为止,我正在做的事情没有成功:
在我的Retrofit 2
界面中:
ImgurAPI
在我的API处理程序中:
@Multipart
@POST("image")
Call<BrowseData> postImage(
@Header("Authorization") String auth,
@Part MultipartBody.Part file,
@Query("image") String image,
@Query("album") String albumId,
@Query("type") String type,
@Query("title") String title,
@Query("description") String description
);
在简单的public void uploadImage(Uri fileUri, String image, String album, String type,
String title, String description) {
// create upload service client (retrofit builder and such)
ImgurAPI service =
ServiceGenerator.createService(ImgurAPI.class);
File file = FileUtils.getFile(caller.getActivity(), fileUri);
// create RequestBody instance from file
RequestBody requestFile =
RequestBody.create(
MediaType.parse(caller.getActivity().getContentResolver().getType(fileUri)),
file
);
// MultipartBody.Part is used to send also the actual file name
MultipartBody.Part body =
MultipartBody.Part.createFormData("picture", file.getName(), requestFile);
// finally, execute the request
Call<BrowseData> call = service.postImage(clientId, body, image, album, type, title, description);
call.enqueue(new Callback<BrowseData>() {
@Override
public void onResponse(Call<BrowseData> call,
Response<BrowseData> response) {
Log.v("Upload", "success");
}
@Override
public void onFailure(Call<BrowseData> call, Throwable t) {
Log.e("Upload error:", t.getMessage());
}
});
}
点击中就是这样称呼的:
FAB
但是在执行请求时,我收到以下错误:
写入错误:ssl = 0x9c531200:系统调用期间的I / O错误,管道损坏
有人可以向我解释我做错了什么吗? (如果您有足够的信息)。