am Используя Retrofit2.0 не удалось загрузить файл из Java.Он выдает ответ в виде кода как 415 .
RetofitCode
File uploadFile1 = new File("/home/art-pc-mob-001/MISSTorewise.png");
Retrofit retrofit = new Retrofit.Builder().baseUrl(endPointURL + "v1/")
.addConverterFactory(GsonConverterFactory.create()).build();
Links links = retrofit.create(Links.class);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), uploadFile1);
MultipartBody.Part body = MultipartBody.Part.createFormData("FileName", uploadFile1.getName(), requestFile);
Call<JsonObject> callBack = links.uploadMedia(accessToken, body);
callBack.enqueue(new Callback<JsonObject>() {
@Override
public void onResponse(Call<JsonObject> arg0, Response<JsonObject> arg1) {
// TODO Auto-generated method stub
System.out.println(arg1.code());
System.out.println(new Gson().toJson(arg1.body()));
}
@Override
public void onFailure(Call<JsonObject> arg0, Throwable arg1) {
// TODO Auto-generated method stub
}
});
Код интерфейса
public interface Links {
@Multipart
@POST("media")
Call<JsonObject> uploadMedia(@Header("accessToken") String acessToken, @Part MultipartBody.Part file);
}
В Почтальоне Работает нормально
Описание API в JSON
"request": {
"method": "POST",
"header": [
{
"key": "accessToken",
"value": "{{access-token}}"
}
],
"body": {
"mode": "formdata",
"formdata": [
{
"key": "FileName",
"type": "file",
"src": ""
}
]
},
"url": {
"raw": "{{endpoint-url}}/v1/media",
"host": [
"{{endpoint-url}}"
],
"path": [
"v1",
"media"
]
},
"description": "upload media"
}
Помогите мне решить эту проблему.