I am trying to upload an image using the Retrofit library, but cannot find success in this;
Here is my code:
File photo = new File(picturePath);
TypedFile typedFile = new TypedFile("multipart/form-data", photo);
GroupTravelServer serverObject = Utils.getRetroFitAdapter();
serverObject.uploadImage(Utils.getAuthHeader(getActivity()), "multipart/form-data", tripId,
typedFile, new Callback<ChatMessageModel>() {
@Override
public void success(C
Here is my interface method:
@Multipart
@POST("/v1/messages")
void uploadImage(@Header(PARAM_AUTHORIZATION) String authorization,
@Header(PARAM_CONTENT_TYPE) String contentType, @Part("tripId") String tripId,
@Part("image") TypedFile image, Callback<ChatMessageModel> callback);
This is the path that was passed:
picturePath= /storage/extSdCard/DCIM/Camera/2014-05-19 17.15.43.jpg
I get 500 internal server errors
with the following stacktrace:
java.net.ProtocolException: unexpected end of stream
at com.squareup.okhttp.internal.http.HttpConnection$FixedLengthSource.read(HttpConnection.java:416)
at com.squareup.okhttp.internal.okio.RealBufferedSource$1.read(RealBufferedSource.java:168)
at java.io.InputStream.read(InputStream.java:162)
at retrofit.Utils.streamToBytes(Utils.java:43)
at retrofit.Utils.readBodyToBytesIfNecessary(Utils.java:81)
at retrofit.RestAdapter.logAndReplaceResponse(RestAdapter.java:494)
at retrofit.RestAdapter.access$600(RestAdapter.java:114)
at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:370)
at retrofit.RestAdapter$RestHandler.access$100(RestAdapter.java:264)
at retrofit.RestAdapter$RestHandler$2.obtainResponse(RestAdapter.java:315)
at retrofit.CallbackRunnable.run(CallbackRunnable.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at retrofit.Platform$Android$2$1.run(Platform.java:142)
at java.lang.Thread.run(Thread.java:841)
D / Retrofit: ----
Please, help!
Thanks in advance.
source
share