mirror of
				https://github.com/owncloud/android-library.git
				synced 2025-10-31 10:27:45 +00:00 
			
		
		
		
	Prepare wrapper to handle response bodies after exceptions
This commit is contained in:
		
							parent
							
								
									e3db308825
								
							
						
					
					
						commit
						eb7cac064f
					
				| @ -148,7 +148,7 @@ public class OwnCloudClient extends HttpClient { | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private void checkFirstRedirection(HttpBaseMethod method) { |     private void checkFirstRedirection(HttpBaseMethod method) { | ||||||
|         final String location = method.getResponseHeader("location"); |         final String location = method.getResponseHeader(HttpConstants.LOCATION_HEADER_LOWER); | ||||||
|         if(location != null && !location.isEmpty()) { |         if(location != null && !location.isEmpty()) { | ||||||
|             mRedirectedLocation = location; |             mRedirectedLocation = location; | ||||||
|         } |         } | ||||||
| @ -182,9 +182,9 @@ public class OwnCloudClient extends HttpClient { | |||||||
|                         status == HttpConstants.HTTP_TEMPORARY_REDIRECT) |                         status == HttpConstants.HTTP_TEMPORARY_REDIRECT) | ||||||
|                 ) { |                 ) { | ||||||
| 
 | 
 | ||||||
|             final String location = method.getResponseHeader("Location") != null |             final String location = method.getResponseHeader(HttpConstants.LOCATION_HEADER) != null | ||||||
|                     ? method.getResponseHeader("Location") |                     ? method.getResponseHeader(HttpConstants.LOCATION_HEADER) | ||||||
|                     : method.getResponseHeader("location"); |                     : method.getResponseHeader(HttpConstants.LOCATION_HEADER_LOWER); | ||||||
|             if (location != null) { |             if (location != null) { | ||||||
| 
 | 
 | ||||||
|                 Log_OC.d(TAG + " #" + mInstanceNumber, |                 Log_OC.d(TAG + " #" + mInstanceNumber, | ||||||
| @ -458,7 +458,7 @@ public class OwnCloudClient extends HttpClient { | |||||||
|                         mRedirectedLocation.toLowerCase().contains("wayf"))); |                         mRedirectedLocation.toLowerCase().contains("wayf"))); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public boolean isFollowRedirects() { |     public boolean followRedirects() { | ||||||
|         return mFollowRedirects; |         return mFollowRedirects; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -44,6 +44,8 @@ public class HttpConstants { | |||||||
|     public static final String OC_X_OC_MTIME_HEADER = "X-OC-Mtime"; |     public static final String OC_X_OC_MTIME_HEADER = "X-OC-Mtime"; | ||||||
|     public static final String PARAM_SINGLE_COOKIE_HEADER = "http.protocol.single-cookie-header"; |     public static final String PARAM_SINGLE_COOKIE_HEADER = "http.protocol.single-cookie-header"; | ||||||
|     public static final String OC_X_REQUEST_ID = "X-Request-ID"; |     public static final String OC_X_REQUEST_ID = "X-Request-ID"; | ||||||
|  |     public static final String LOCATION_HEADER = "Location"; | ||||||
|  |     public static final String LOCATION_HEADER_LOWER = "location"; | ||||||
| 
 | 
 | ||||||
|     /*********************************************************************************************************** |     /*********************************************************************************************************** | ||||||
|      ************************************************ STATUS CODES ********************************************* |      ************************************************ STATUS CODES ********************************************* | ||||||
|  | |||||||
| @ -54,7 +54,7 @@ public abstract class HttpBaseMethod { | |||||||
|     protected Call mCall; |     protected Call mCall; | ||||||
|     protected URL mUrl; |     protected URL mUrl; | ||||||
| 
 | 
 | ||||||
|     protected HttpBaseMethod (URL url) { |     protected HttpBaseMethod(URL url) { | ||||||
|         mOkHttpClient = HttpClient.getOkHttpClient(); |         mOkHttpClient = HttpClient.getOkHttpClient(); | ||||||
|         mUrl = url; |         mUrl = url; | ||||||
|         mRequest = new Request.Builder() |         mRequest = new Request.Builder() | ||||||
| @ -84,7 +84,22 @@ public abstract class HttpBaseMethod { | |||||||
|     //         Getter |     //         Getter | ||||||
|     ////////////////////////////// |     ////////////////////////////// | ||||||
| 
 | 
 | ||||||
|  |     // Request | ||||||
|  | 
 | ||||||
|  |     public Headers getRequestHeaders() { | ||||||
|  |         return mRequest.headers(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getRequestHeader(String name) { | ||||||
|  |         return mRequest.header(name); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public HttpUrl getUrl() { | ||||||
|  |         return mRequest.url(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     // Response |     // Response | ||||||
|  | 
 | ||||||
|     public int getStatusCode() { |     public int getStatusCode() { | ||||||
|         return mResponse.code(); |         return mResponse.code(); | ||||||
|     } |     } | ||||||
| @ -109,28 +124,16 @@ public abstract class HttpBaseMethod { | |||||||
|         return mResponse.header(headerName); |         return mResponse.header(headerName); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public HttpUrl getUrl() { |  | ||||||
|         return mRequest.url(); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     public boolean getRetryOnConnectionFailure() { |     public boolean getRetryOnConnectionFailure() { | ||||||
|         return mOkHttpClient.retryOnConnectionFailure(); |         return mOkHttpClient.retryOnConnectionFailure(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // Request |  | ||||||
|     public String getRequestHeader(String name) { |  | ||||||
|         return mRequest.header(name); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     public Headers getRequestHeaders() { |  | ||||||
|         return mRequest.headers(); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     ////////////////////////////// |     ////////////////////////////// | ||||||
|     //         Setter |     //         Setter | ||||||
|     ////////////////////////////// |     ////////////////////////////// | ||||||
| 
 | 
 | ||||||
|     // Connection parameters |     // Connection parameters | ||||||
|  | 
 | ||||||
|     public void setReadTimeout(long readTimeout, TimeUnit timeUnit) { |     public void setReadTimeout(long readTimeout, TimeUnit timeUnit) { | ||||||
|         mOkHttpClient = mOkHttpClient.newBuilder() |         mOkHttpClient = mOkHttpClient.newBuilder() | ||||||
|                 .readTimeout(readTimeout, timeUnit) |                 .readTimeout(readTimeout, timeUnit) | ||||||
| @ -155,12 +158,20 @@ public abstract class HttpBaseMethod { | |||||||
|                 .build(); |                 .build(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     // Request | ||||||
|  | 
 | ||||||
|     public void addRequestHeader(String name, String value) { |     public void addRequestHeader(String name, String value) { | ||||||
|         mRequest = mRequest.newBuilder() |         mRequest = mRequest.newBuilder() | ||||||
|                 .addHeader(name, value) |                 .addHeader(name, value) | ||||||
|                 .build(); |                 .build(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * Sets a header and replace it if already exists with that name | ||||||
|  |      * | ||||||
|  |      * @param name  header name | ||||||
|  |      * @param value header value | ||||||
|  |      */ | ||||||
|     public void setRequestHeader(String name, String value) { |     public void setRequestHeader(String name, String value) { | ||||||
|         mRequest = mRequest.newBuilder() |         mRequest = mRequest.newBuilder() | ||||||
|                 .header(name, value) |                 .header(name, value) | ||||||
|  | |||||||
| @ -1,13 +1,38 @@ | |||||||
|  | /* ownCloud Android Library is available under MIT license | ||||||
|  |  *   Copyright (C) 2018 ownCloud GmbH. | ||||||
|  |  * | ||||||
|  |  *   Permission is hereby granted, free of charge, to any person obtaining a copy | ||||||
|  |  *   of this software and associated documentation files (the "Software"), to deal | ||||||
|  |  *   in the Software without restriction, including without limitation the rights | ||||||
|  |  *   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||||
|  |  *   copies of the Software, and to permit persons to whom the Software is | ||||||
|  |  *   furnished to do so, subject to the following conditions: | ||||||
|  |  * | ||||||
|  |  *   The above copyright notice and this permission notice shall be included in | ||||||
|  |  *   all copies or substantial portions of the Software. | ||||||
|  |  * | ||||||
|  |  *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||||||
|  |  *   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||||||
|  |  *   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||||||
|  |  *   NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | ||||||
|  |  *   BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | ||||||
|  |  *   ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||||||
|  |  *   CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||||
|  |  *   THE SOFTWARE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
| package com.owncloud.android.lib.common.http.methods.webdav; | package com.owncloud.android.lib.common.http.methods.webdav; | ||||||
| 
 | 
 | ||||||
| import java.net.URL; | import java.net.URL; | ||||||
| 
 | 
 | ||||||
| import at.bitfire.dav4android.exception.UnauthorizedException; |  | ||||||
| import kotlin.Unit; | import kotlin.Unit; | ||||||
| import kotlin.jvm.functions.Function1; |  | ||||||
| import okhttp3.HttpUrl; |  | ||||||
| import okhttp3.Response; |  | ||||||
| 
 | 
 | ||||||
|  | /** | ||||||
|  |  * Copy calls wrapper | ||||||
|  |  * @author Christian Schabesberger | ||||||
|  |  * @author David González Verdugo | ||||||
|  |  */ | ||||||
| public class CopyMethod extends DavMethod { | public class CopyMethod extends DavMethod { | ||||||
| 
 | 
 | ||||||
|     final String destinationUrl; |     final String destinationUrl; | ||||||
| @ -21,15 +46,11 @@ public class CopyMethod extends DavMethod { | |||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public int onExecute() throws Exception { |     public int onExecute() throws Exception { | ||||||
|         try { |  | ||||||
|         mDavResource.copy(destinationUrl, forceOverride, response -> { |         mDavResource.copy(destinationUrl, forceOverride, response -> { | ||||||
|             mResponse = response; |             mResponse = response; | ||||||
|             return Unit.INSTANCE; |             return Unit.INSTANCE; | ||||||
|         }); |         }); | ||||||
| 
 | 
 | ||||||
|         } catch (UnauthorizedException davException) { |  | ||||||
|             // Do nothing, we will use the 401 code to handle the situation |  | ||||||
|         } |  | ||||||
|         return super.getStatusCode(); |         return super.getStatusCode(); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| @ -24,6 +24,7 @@ | |||||||
| 
 | 
 | ||||||
| package com.owncloud.android.lib.common.http.methods.webdav; | package com.owncloud.android.lib.common.http.methods.webdav; | ||||||
| 
 | 
 | ||||||
|  | import com.owncloud.android.lib.common.http.HttpConstants; | ||||||
| import com.owncloud.android.lib.common.http.methods.HttpBaseMethod; | import com.owncloud.android.lib.common.http.methods.HttpBaseMethod; | ||||||
| 
 | 
 | ||||||
| import java.net.URL; | import java.net.URL; | ||||||
| @ -31,8 +32,12 @@ import java.util.concurrent.TimeUnit; | |||||||
| 
 | 
 | ||||||
| import at.bitfire.dav4android.Constants; | import at.bitfire.dav4android.Constants; | ||||||
| import at.bitfire.dav4android.DavOCResource; | import at.bitfire.dav4android.DavOCResource; | ||||||
|  | import at.bitfire.dav4android.exception.HttpException; | ||||||
| import at.bitfire.dav4android.exception.RedirectException; | import at.bitfire.dav4android.exception.RedirectException; | ||||||
| import okhttp3.HttpUrl; | import okhttp3.HttpUrl; | ||||||
|  | import okhttp3.Protocol; | ||||||
|  | import okhttp3.Response; | ||||||
|  | import okhttp3.ResponseBody; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Wrapper to perform WebDAV (dav4android) calls |  * Wrapper to perform WebDAV (dav4android) calls | ||||||
| @ -59,13 +64,36 @@ public abstract class DavMethod extends HttpBaseMethod { | |||||||
|     public int execute() throws Exception { |     public int execute() throws Exception { | ||||||
|         try { |         try { | ||||||
|             return onExecute(); |             return onExecute(); | ||||||
|         } catch (RedirectException e) { |         } catch (HttpException httpException) { | ||||||
|             return getStatusCode(); |             // Modify responses with information gathered from exceptions | ||||||
|  |             if (httpException instanceof RedirectException) { | ||||||
|  |                 mResponse = new Response.Builder() | ||||||
|  |                         .header( | ||||||
|  |                                 HttpConstants.LOCATION_HEADER, ((RedirectException) httpException).getRedirectLocation() | ||||||
|  |                         ) | ||||||
|  |                         .code(httpException.getCode()) | ||||||
|  |                         .request(mRequest) | ||||||
|  |                         .message(httpException.getMessage()) | ||||||
|  |                         .protocol(Protocol.HTTP_1_1) | ||||||
|  |                         .build(); | ||||||
|  | 
 | ||||||
|  |             } else if (mResponse != null) { | ||||||
|  |                 ResponseBody responseBody = ResponseBody.create( | ||||||
|  |                         mResponse.body().contentType(), | ||||||
|  |                         httpException.getResponseBody() | ||||||
|  |                 ); | ||||||
|  | 
 | ||||||
|  |                 mResponse = mResponse.newBuilder() | ||||||
|  |                         .body(responseBody) | ||||||
|  |                         .build(); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             return httpException.getCode(); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     ////////////////////////////// |     ////////////////////////////// | ||||||
|     //         setter |     //         Setter | ||||||
|     ////////////////////////////// |     ////////////////////////////// | ||||||
| 
 | 
 | ||||||
|     // Connection parameters |     // Connection parameters | ||||||
| @ -106,7 +134,7 @@ public abstract class DavMethod extends HttpBaseMethod { | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     ////////////////////////////// |     ////////////////////////////// | ||||||
|     //         getter |     //         Getter | ||||||
|     ////////////////////////////// |     ////////////////////////////// | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|  | |||||||
| @ -1,12 +1,38 @@ | |||||||
|  | /* ownCloud Android Library is available under MIT license | ||||||
|  |  *   Copyright (C) 2018 ownCloud GmbH. | ||||||
|  |  * | ||||||
|  |  *   Permission is hereby granted, free of charge, to any person obtaining a copy | ||||||
|  |  *   of this software and associated documentation files (the "Software"), to deal | ||||||
|  |  *   in the Software without restriction, including without limitation the rights | ||||||
|  |  *   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||||
|  |  *   copies of the Software, and to permit persons to whom the Software is | ||||||
|  |  *   furnished to do so, subject to the following conditions: | ||||||
|  |  * | ||||||
|  |  *   The above copyright notice and this permission notice shall be included in | ||||||
|  |  *   all copies or substantial portions of the Software. | ||||||
|  |  * | ||||||
|  |  *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||||||
|  |  *   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||||||
|  |  *   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||||||
|  |  *   NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | ||||||
|  |  *   BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | ||||||
|  |  *   ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||||||
|  |  *   CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||||
|  |  *   THE SOFTWARE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
| package com.owncloud.android.lib.common.http.methods.webdav; | package com.owncloud.android.lib.common.http.methods.webdav; | ||||||
| 
 | 
 | ||||||
| import java.net.URL; | import java.net.URL; | ||||||
| 
 | 
 | ||||||
| import at.bitfire.dav4android.exception.UnauthorizedException; |  | ||||||
| import kotlin.Unit; | import kotlin.Unit; | ||||||
| import kotlin.jvm.functions.Function1; |  | ||||||
| import okhttp3.Response; |  | ||||||
| 
 | 
 | ||||||
|  | /** | ||||||
|  |  * MkCol calls wrapper | ||||||
|  |  * @author Christian Schabesberger | ||||||
|  |  * @author David González Verdugo | ||||||
|  |  */ | ||||||
| public class MkColMethod extends DavMethod { | public class MkColMethod extends DavMethod { | ||||||
|     public MkColMethod(URL url) { |     public MkColMethod(URL url) { | ||||||
|         super(url); |         super(url); | ||||||
| @ -14,15 +40,11 @@ public class MkColMethod extends DavMethod { | |||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public int onExecute() throws Exception { |     public int onExecute() throws Exception { | ||||||
|         try { |  | ||||||
|         mDavResource.mkCol(null, response -> { |         mDavResource.mkCol(null, response -> { | ||||||
|             mResponse = response; |             mResponse = response; | ||||||
|             return Unit.INSTANCE; |             return Unit.INSTANCE; | ||||||
|         }); |         }); | ||||||
| 
 | 
 | ||||||
|         } catch (UnauthorizedException davException) { |  | ||||||
|             // Do nothing, we will use the 401 code to handle the situation |  | ||||||
|         } |  | ||||||
|         return super.getStatusCode(); |         return super.getStatusCode(); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| @ -1,14 +1,40 @@ | |||||||
|  | /* ownCloud Android Library is available under MIT license | ||||||
|  |  *   Copyright (C) 2018 ownCloud GmbH. | ||||||
|  |  * | ||||||
|  |  *   Permission is hereby granted, free of charge, to any person obtaining a copy | ||||||
|  |  *   of this software and associated documentation files (the "Software"), to deal | ||||||
|  |  *   in the Software without restriction, including without limitation the rights | ||||||
|  |  *   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||||
|  |  *   copies of the Software, and to permit persons to whom the Software is | ||||||
|  |  *   furnished to do so, subject to the following conditions: | ||||||
|  |  * | ||||||
|  |  *   The above copyright notice and this permission notice shall be included in | ||||||
|  |  *   all copies or substantial portions of the Software. | ||||||
|  |  * | ||||||
|  |  *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||||||
|  |  *   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||||||
|  |  *   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||||||
|  |  *   NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | ||||||
|  |  *   BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | ||||||
|  |  *   ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||||||
|  |  *   CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||||
|  |  *   THE SOFTWARE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
| package com.owncloud.android.lib.common.http.methods.webdav; | package com.owncloud.android.lib.common.http.methods.webdav; | ||||||
| 
 | 
 | ||||||
| import com.owncloud.android.lib.common.http.HttpConstants; | import com.owncloud.android.lib.common.http.HttpConstants; | ||||||
| 
 | 
 | ||||||
| import java.net.URL; | import java.net.URL; | ||||||
| 
 | 
 | ||||||
| import at.bitfire.dav4android.exception.UnauthorizedException; |  | ||||||
| import kotlin.Unit; | import kotlin.Unit; | ||||||
| import kotlin.jvm.functions.Function1; |  | ||||||
| import okhttp3.Response; |  | ||||||
| 
 | 
 | ||||||
|  | /** | ||||||
|  |  * Move calls wrapper | ||||||
|  |  * @author Christian Schabesberger | ||||||
|  |  * @author David González Verdugo | ||||||
|  |  */ | ||||||
| public class MoveMethod extends DavMethod { | public class MoveMethod extends DavMethod { | ||||||
|     final String destinationUrl; |     final String destinationUrl; | ||||||
|     final boolean forceOverride; |     final boolean forceOverride; | ||||||
| @ -21,7 +47,6 @@ public class MoveMethod extends DavMethod { | |||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public int onExecute() throws Exception { |     public int onExecute() throws Exception { | ||||||
|         try { |  | ||||||
|         mDavResource.move( |         mDavResource.move( | ||||||
|                 destinationUrl, |                 destinationUrl, | ||||||
|                 forceOverride, |                 forceOverride, | ||||||
| @ -31,9 +56,6 @@ public class MoveMethod extends DavMethod { | |||||||
|                     return Unit.INSTANCE; |                     return Unit.INSTANCE; | ||||||
|                 }); |                 }); | ||||||
| 
 | 
 | ||||||
|         } catch (UnauthorizedException davException) { |  | ||||||
|             // Do nothing, we will use the 401 code to handle the situation |  | ||||||
|         } |  | ||||||
|         return super.getStatusCode(); |         return super.getStatusCode(); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| @ -32,7 +32,6 @@ import java.util.List; | |||||||
| import at.bitfire.dav4android.Property; | import at.bitfire.dav4android.Property; | ||||||
| import at.bitfire.dav4android.Response; | import at.bitfire.dav4android.Response; | ||||||
| import at.bitfire.dav4android.exception.DavException; | import at.bitfire.dav4android.exception.DavException; | ||||||
| import at.bitfire.dav4android.exception.UnauthorizedException; |  | ||||||
| import kotlin.Unit; | import kotlin.Unit; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
| @ -58,8 +57,7 @@ public class PropfindMethod extends DavMethod { | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public int onExecute() throws IOException, DavException { |     public int onExecute() throws IOException, DavException{ | ||||||
|         try { |  | ||||||
|         mDavResource.propfind(mDepth, mPropertiesToRequest, |         mDavResource.propfind(mDepth, mPropertiesToRequest, | ||||||
|                 (Response response, Response.HrefRelation hrefRelation) -> { |                 (Response response, Response.HrefRelation hrefRelation) -> { | ||||||
|                     switch (hrefRelation) { |                     switch (hrefRelation) { | ||||||
| @ -77,10 +75,6 @@ public class PropfindMethod extends DavMethod { | |||||||
|                     mResponse = response; |                     mResponse = response; | ||||||
|                     return Unit.INSTANCE; |                     return Unit.INSTANCE; | ||||||
|                 }); |                 }); | ||||||
|         } catch (UnauthorizedException davException) { |  | ||||||
|             // Do nothing, we will use the 401 code to handle the situation |  | ||||||
|             return davException.getCode(); |  | ||||||
|         } |  | ||||||
| 
 | 
 | ||||||
|         return getStatusCode(); |         return getStatusCode(); | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -29,14 +29,8 @@ import com.owncloud.android.lib.common.http.HttpConstants; | |||||||
| import java.io.IOException; | import java.io.IOException; | ||||||
| import java.net.URL; | import java.net.URL; | ||||||
| 
 | 
 | ||||||
| import at.bitfire.dav4android.exception.DavException; |  | ||||||
| import at.bitfire.dav4android.exception.HttpException; | import at.bitfire.dav4android.exception.HttpException; | ||||||
| import at.bitfire.dav4android.exception.UnauthorizedException; |  | ||||||
| import kotlin.Unit; | import kotlin.Unit; | ||||||
| import kotlin.jvm.functions.Function1; |  | ||||||
| import okhttp3.HttpUrl; |  | ||||||
| import okhttp3.RequestBody; |  | ||||||
| import okhttp3.Response; |  | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Put calls wrapper |  * Put calls wrapper | ||||||
| @ -50,7 +44,6 @@ public class PutMethod extends DavMethod { | |||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public int onExecute() throws IOException, HttpException { |     public int onExecute() throws IOException, HttpException { | ||||||
|         try { |  | ||||||
|         mDavResource.put( |         mDavResource.put( | ||||||
|                 mRequestBody, |                 mRequestBody, | ||||||
|                 super.getRequestHeader(HttpConstants.IF_MATCH_HEADER), |                 super.getRequestHeader(HttpConstants.IF_MATCH_HEADER), | ||||||
| @ -61,10 +54,6 @@ public class PutMethod extends DavMethod { | |||||||
|                     return Unit.INSTANCE; |                     return Unit.INSTANCE; | ||||||
|                 }); |                 }); | ||||||
| 
 | 
 | ||||||
|         } catch (UnauthorizedException davException) { |  | ||||||
|             // Do nothing, we will use the 401 code to handle the situation |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         return super.getStatusCode(); |         return super.getStatusCode(); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| @ -82,8 +82,8 @@ public class ExistenceCheckRemoteOperation extends RemoteOperation { | |||||||
|             PropfindMethod propfindMethod = new PropfindMethod( |             PropfindMethod propfindMethod = new PropfindMethod( | ||||||
|                     new URL(client.getNewFilesWebDavUri() + WebdavUtils.encodePath(mPath)), |                     new URL(client.getNewFilesWebDavUri() + WebdavUtils.encodePath(mPath)), | ||||||
|                     0, |                     0, | ||||||
|                     DavUtils.getAllPropset()); |                     DavUtils.getAllPropset() | ||||||
| 
 |             ); | ||||||
|             propfindMethod.setReadTimeout(TIMEOUT, TimeUnit.SECONDS); |             propfindMethod.setReadTimeout(TIMEOUT, TimeUnit.SECONDS); | ||||||
|             propfindMethod.setConnectionTimeout(TIMEOUT, TimeUnit.SECONDS); |             propfindMethod.setConnectionTimeout(TIMEOUT, TimeUnit.SECONDS); | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user