Fast-android-networking: Upload File to server - error

Created on 28 Mar 2017  路  8Comments  路  Source: amitshekhariitbhu/Fast-Android-Networking

## this error : com.androidnetworking.error.ANError: java.net.ProtocolException: unexpected end of stream

This code
AndroidNetworking.upload(url)
.addMultipartFile("image",file)
.setPriority(Priority.HIGH)
.build()
.setUploadProgressListener(new UploadProgressListener() {
@Override
public void onProgress(long bytesUploaded, long totalBytes) {
// do anything with progress
}
})
.getAsJSONObject(new JSONObjectRequestListener() {
@Override
public void onResponse(JSONObject response) {
// do anything with response
}
@Override
public void onError(ANError error) {
// handle error
}
});

help wanted

All 8 comments

Upload test found that the two leads to unexpected end of the stream .

Need more info

i have faced the same error : com.androidnetworking.error.ANError: java.net.ProtocolException: unexpected end of stream.
i have tested my uploading file with rxsampleapp of Fast-Android-Networking,then it work fine.But if i add your library into build.gradle like this
compile 'com.amitshekhar.android:android-networking:1.0.0' .this error will occur.i think something wrong happen in current version.Please update your library.Thank so much

@amitshekhariitbhu thank so much.i will check

I am also getting this error from Crashalytics, when user is uploading file:

Fatal Exception: java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.
       at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:62)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:158)
       at android.app.ActivityThread.main(ActivityThread.java:7229)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by rx.exceptions.OnErrorFailedException: Error occurred when trying to propagate error to Observer.onError
       at rx.observers.SafeSubscriber._onError(SafeSubscriber.java:194)
       at rx.observers.SafeSubscriber.onError(SafeSubscriber.java:120)
       at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.pollQueue(OperatorObserveOn.java:191)
       at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber$2.call(OperatorObserveOn.java:162)
       at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:158)
       at android.app.ActivityThread.main(ActivityThread.java:7229)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by rx.exceptions.CompositeException: 2 exceptions occurred. 
       at rx.observers.SafeSubscriber._onError(SafeSubscriber.java:194)
       at rx.observers.SafeSubscriber.onError(SafeSubscriber.java:120)
       at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.pollQueue(OperatorObserveOn.java:191)
       at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber$2.call(OperatorObserveOn.java:162)
       at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:158)
       at android.app.ActivityThread.main(ActivityThread.java:7229)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by rx.exceptions.CompositeException$CompositeExceptionCausalChain: Chain of Causes for CompositeException In Order Received =>
       at com.flurry.sdk.bx.uncaughtException(SourceFile:325)
       at com.flurry.sdk.eq.a(SourceFile:90)
       at com.flurry.sdk.eq.a(SourceFile:19)
       at com.flurry.sdk.eq$a.uncaughtException(SourceFile:106)
       at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
       at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
       at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:66)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:158)
       at android.app.ActivityThread.main(ActivityThread.java:7229)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by com.androidnetworking.error.ANError: java.net.ProtocolException: unexpected end of stream
       at com.rxandroidnetworking.RxInternalNetworking$MultipartANResolver.request(RxInternalNetworking.java:453)
       at rx.Subscriber.setProducer(Subscriber.java:211)
       at com.rxandroidnetworking.RxInternalNetworking$ANOnSubscribe.call(RxInternalNetworking.java:189)
       at com.rxandroidnetworking.RxInternalNetworking$ANOnSubscribe.call(RxInternalNetworking.java:163)
       at rx.Observable.unsafeSubscribe(Observable.java:8172)
       at rx.internal.operators.OperatorPublish.connect(OperatorPublish.java:186)
       at rx.internal.operators.OnSubscribeAutoConnect.call(OnSubscribeAutoConnect.java:54)
       at rx.internal.operators.OnSubscribeAutoConnect.call(OnSubscribeAutoConnect.java:33)
       at rx.Observable.unsafeSubscribe(Observable.java:8172)
       at rx.internal.operators.OperatorMerge$MergeSubscriber.onNext(OperatorMerge.java:232)
       at rx.internal.operators.OperatorMerge$MergeSubscriber.onNext(OperatorMerge.java:142)
       at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:54)
       at rx.internal.util.ScalarSynchronousObservable$ScalarSynchronousAction.call(ScalarSynchronousObservable.java:115)
       at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:154)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)
Caused by java.net.ProtocolException: unexpected end of stream
       at okhttp3.internal.http.Http1xStream$FixedLengthSink.close(Http1xStream.java:298)
       at okio.RealBufferedSink.close(RealBufferedSink.java:241)
       at okhttp3.internal.http.HttpEngine$NetworkInterceptorChain.proceed(HttpEngine.java:705)
       at okhttp3.internal.http.HttpEngine.readResponse(HttpEngine.java:563)
       at okhttp3.RealCall.getResponse(RealCall.java:241)
       at okhttp3.RealCall$ApplicationInterceptorChain.proceed(RealCall.java:198)
       at co.snaptee.android.networking.v1.SnapteeParamInterceptor.intercept(SnapteeParamInterceptor.java:26)
       at okhttp3.RealCall$ApplicationInterceptorChain.proceed(RealCall.java:187)
       at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:160)
       at okhttp3.RealCall.execute(RealCall.java:57)
       at com.rxandroidnetworking.RxInternalNetworking$MultipartANResolver.request(RxInternalNetworking.java:416)
       at rx.Subscriber.setProducer(Subscriber.java:211)
       at com.rxandroidnetworking.RxInternalNetworking$ANOnSubscribe.call(RxInternalNetworking.java:189)
       at com.rxandroidnetworking.RxInternalNetworking$ANOnSubscribe.call(RxInternalNetworking.java:163)
       at rx.Observable.unsafeSubscribe(Observable.java:8172)
       at rx.internal.operators.OperatorPublish.connect(OperatorPublish.java:186)
       at rx.internal.operators.OnSubscribeAutoConnect.call(OnSubscribeAutoConnect.java:54)
       at rx.internal.operators.OnSubscribeAutoConnect.call(OnSubscribeAutoConnect.java:33)
       at rx.Observable.unsafeSubscribe(Observable.java:8172)
       at rx.internal.operators.OperatorMerge$MergeSubscriber.onNext(OperatorMerge.java:232)
       at rx.internal.operators.OperatorMerge$MergeSubscriber.onNext(OperatorMerge.java:142)
       at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:54)
       at rx.internal.util.ScalarSynchronousObservable$ScalarSynchronousAction.call(ScalarSynchronousObservable.java:115)
       at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:154)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

I have read #106 but I don't understand how to solve it. I have not enabled logging, and I am using rx-android-networking:0.2.0. Could anyone give some hints?

Just comment out the bellow code or off the debug. It works for me

//if (BuildConfig.DEBUG) {
// AndroidNetworking.enableLogging(HttpLoggingInterceptor.Level.BODY)
// }/

if it is closed what was the solution i want to log but i don't want to log the file
val interceptor = HttpLoggingInterceptor()
interceptor.level = HttpLoggingInterceptor.Level.BODY

okHttpClient = OkHttpClient().newBuilder()
.addNetworkInterceptor(NetworkConnectionInterceptor(applicationContext))
.addInterceptor(interceptor)
.build()

it gives me the same error end of the stream
but when I removed the logging intercepter it is working fine

Was this page helpful?
0 / 5 - 0 ratings

Related issues

AymanAbouzeid picture AymanAbouzeid  路  4Comments

MahdiPishguy picture MahdiPishguy  路  5Comments

Ali-Khazaee picture Ali-Khazaee  路  5Comments

everyline picture everyline  路  9Comments

ahaneef29 picture ahaneef29  路  7Comments