diff --git a/dav4android b/dav4android index 054d7b57..466380e9 160000 --- a/dav4android +++ b/dav4android @@ -1 +1 @@ -Subproject commit 054d7b57b27d7c258d717c8a326eed89e195d168 +Subproject commit 466380e9bb8414d919391dbb14de7926dbfd387e diff --git a/src/com/owncloud/android/lib/common/OwnCloudClient.java b/src/com/owncloud/android/lib/common/OwnCloudClient.java index 6c8a5652..2cad64c6 100644 --- a/src/com/owncloud/android/lib/common/OwnCloudClient.java +++ b/src/com/owncloud/android/lib/common/OwnCloudClient.java @@ -33,7 +33,7 @@ import android.net.Uri; import com.owncloud.android.lib.common.authentication.OwnCloudCredentials; import com.owncloud.android.lib.common.authentication.OwnCloudCredentialsFactory; import com.owncloud.android.lib.common.authentication.OwnCloudCredentialsFactory.OwnCloudAnonymousCredentials; -import com.owncloud.android.lib.common.http.HttpBaseMethod; +import com.owncloud.android.lib.common.http.methods.HttpBaseMethod; import com.owncloud.android.lib.common.network.RedirectionPath; import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.lib.resources.status.OwnCloudVersion; diff --git a/src/com/owncloud/android/lib/common/http/HttpBaseMethod.java b/src/com/owncloud/android/lib/common/http/methods/HttpBaseMethod.java similarity index 94% rename from src/com/owncloud/android/lib/common/http/HttpBaseMethod.java rename to src/com/owncloud/android/lib/common/http/methods/HttpBaseMethod.java index cdf02498..2886dcc3 100644 --- a/src/com/owncloud/android/lib/common/http/HttpBaseMethod.java +++ b/src/com/owncloud/android/lib/common/http/methods/HttpBaseMethod.java @@ -22,7 +22,9 @@ * */ -package com.owncloud.android.lib.common.http; +package com.owncloud.android.lib.common.http.methods; + +import com.owncloud.android.lib.common.http.HttpClient; import java.io.IOException; import java.io.InputStream; @@ -46,7 +48,7 @@ public abstract class HttpBaseMethod { protected Request mRequest; protected Response mResponse; - public HttpBaseMethod (HttpUrl httpUrl) { + protected HttpBaseMethod (HttpUrl httpUrl) { mOkHttpClient = HttpClient.getOkHttpClient(); mRequest = new Request.Builder() .url(httpUrl) @@ -58,7 +60,6 @@ public abstract class HttpBaseMethod { return mRequest.headers(); } - // Request headers public void addRequestHeader(String name, String value) { mRequest.newBuilder() .addHeader(name, value) diff --git a/src/com/owncloud/android/lib/common/http/methods/nonwebdav/DeleteMethod.java b/src/com/owncloud/android/lib/common/http/methods/nonwebdav/DeleteMethod.java index 24c3d2a8..9ed7307a 100644 --- a/src/com/owncloud/android/lib/common/http/methods/nonwebdav/DeleteMethod.java +++ b/src/com/owncloud/android/lib/common/http/methods/nonwebdav/DeleteMethod.java @@ -24,22 +24,26 @@ package com.owncloud.android.lib.common.http.methods.nonwebdav; +import java.io.IOException; + +import okhttp3.HttpUrl; + /** * OkHttp delete calls wrapper * @author David González Verdugo */ public class DeleteMethod extends HttpMethod{ - public DeleteMethod(String httpUrl) { + public DeleteMethod(HttpUrl httpUrl) { super(httpUrl); } @Override - public int execute() throws Exception { - mRequest.newBuilder() + public int execute() throws IOException { + mRequest = mRequest.newBuilder() .delete() .build(); - return super.executeRequest(); + return super.execute(); } } \ No newline at end of file diff --git a/src/com/owncloud/android/lib/common/http/methods/nonwebdav/GetMethod.java b/src/com/owncloud/android/lib/common/http/methods/nonwebdav/GetMethod.java index a1a117ed..b24b9bce 100644 --- a/src/com/owncloud/android/lib/common/http/methods/nonwebdav/GetMethod.java +++ b/src/com/owncloud/android/lib/common/http/methods/nonwebdav/GetMethod.java @@ -34,20 +34,16 @@ import okhttp3.HttpUrl; */ public class GetMethod extends HttpMethod { - public GetMethod(String httpUrl) { - super(httpUrl); - } - public GetMethod(HttpUrl httpUrl) { super(httpUrl); } @Override public int execute() throws IOException { - mRequest.newBuilder() + mRequest = mRequest.newBuilder() .get() .build(); - return super.executeRequest(); + return super.execute(); } } \ No newline at end of file diff --git a/src/com/owncloud/android/lib/common/http/methods/nonwebdav/HttpMethod.java b/src/com/owncloud/android/lib/common/http/methods/nonwebdav/HttpMethod.java index 0fbd3ab3..295e3199 100644 --- a/src/com/owncloud/android/lib/common/http/methods/nonwebdav/HttpMethod.java +++ b/src/com/owncloud/android/lib/common/http/methods/nonwebdav/HttpMethod.java @@ -24,12 +24,11 @@ package com.owncloud.android.lib.common.http.methods.nonwebdav; -import com.owncloud.android.lib.common.http.HttpBaseMethod; +import com.owncloud.android.lib.common.http.methods.HttpBaseMethod; import java.io.IOException; import okhttp3.HttpUrl; -import okhttp3.Request; /** * Wrapper to perform OkHttp calls @@ -42,7 +41,8 @@ public abstract class HttpMethod extends HttpBaseMethod { super(httpUrl); } - public int executeRequest() throws IOException { + @Override + public int execute() throws IOException { mResponse = mOkHttpClient.newCall(mRequest).execute(); return super.getStatusCode(); } diff --git a/src/com/owncloud/android/lib/common/http/methods/nonwebdav/PostMethod.java b/src/com/owncloud/android/lib/common/http/methods/nonwebdav/PostMethod.java index 34e2aa5b..f07b282d 100644 --- a/src/com/owncloud/android/lib/common/http/methods/nonwebdav/PostMethod.java +++ b/src/com/owncloud/android/lib/common/http/methods/nonwebdav/PostMethod.java @@ -24,6 +24,9 @@ package com.owncloud.android.lib.common.http.methods.nonwebdav; +import java.io.IOException; + +import okhttp3.HttpUrl; import okhttp3.RequestBody; /** @@ -34,17 +37,17 @@ public class PostMethod extends HttpMethod { private RequestBody mRequestBody; - public PostMethod(String httpUrl, RequestBody requestBody){ + public PostMethod(HttpUrl httpUrl, RequestBody requestBody){ super(httpUrl); mRequestBody = requestBody; } @Override - public int execute() throws Exception { - mRequest.newBuilder() + public int execute() throws IOException { + mRequest = mRequest.newBuilder() .post(mRequestBody) .build(); - return super.executeRequest(); + return super.execute(); } } \ No newline at end of file diff --git a/src/com/owncloud/android/lib/common/http/methods/nonwebdav/PutMethod.java b/src/com/owncloud/android/lib/common/http/methods/nonwebdav/PutMethod.java index 04d9abd8..7d1c10e2 100644 --- a/src/com/owncloud/android/lib/common/http/methods/nonwebdav/PutMethod.java +++ b/src/com/owncloud/android/lib/common/http/methods/nonwebdav/PutMethod.java @@ -24,23 +24,26 @@ package com.owncloud.android.lib.common.http.methods.nonwebdav; +import java.io.IOException; + +import okhttp3.HttpUrl; import okhttp3.RequestBody; public class PutMethod extends HttpMethod{ private RequestBody mRequestBody; - public PutMethod(String httpUrl, RequestBody requestBody){ + public PutMethod(HttpUrl httpUrl, RequestBody requestBody){ super(httpUrl); mRequestBody = requestBody; } @Override - public int execute() throws Exception { - mRequest.newBuilder() + public int execute() throws IOException { + mRequest = mRequest.newBuilder() .put(mRequestBody) .build(); - return super.executeRequest(); + return super.execute(); } } \ No newline at end of file diff --git a/src/com/owncloud/android/lib/common/http/methods/webdav/DavMethod.java b/src/com/owncloud/android/lib/common/http/methods/webdav/DavMethod.java index fcae6b64..dfa293a6 100644 --- a/src/com/owncloud/android/lib/common/http/methods/webdav/DavMethod.java +++ b/src/com/owncloud/android/lib/common/http/methods/webdav/DavMethod.java @@ -24,7 +24,7 @@ package com.owncloud.android.lib.common.http.methods.webdav; -import com.owncloud.android.lib.common.http.HttpBaseMethod; +import com.owncloud.android.lib.common.http.methods.HttpBaseMethod; import at.bitfire.dav4android.DavOCResource; import at.bitfire.dav4android.DavResource; @@ -38,8 +38,8 @@ public abstract class DavMethod extends HttpBaseMethod { protected DavOCResource mDavResource; - public DavMethod(HttpUrl httpUrl) { - super(); + protected DavMethod(HttpUrl httpUrl) { + super(httpUrl); mDavResource = new DavOCResource( mOkHttpClient, httpUrl diff --git a/src/com/owncloud/android/lib/common/http/methods/webdav/PutMethod.java b/src/com/owncloud/android/lib/common/http/methods/webdav/PutMethod.java index 8323485b..279b8bc4 100644 --- a/src/com/owncloud/android/lib/common/http/methods/webdav/PutMethod.java +++ b/src/com/owncloud/android/lib/common/http/methods/webdav/PutMethod.java @@ -50,7 +50,7 @@ public class PutMethod extends DavMethod { }; @Override - public int execute() throws IOException, HttpException, DavException { + public int execute() throws IOException, HttpException { try { mDavResource.put( mRequestBody, diff --git a/src/com/owncloud/android/lib/common/network/WebdavUtils.java b/src/com/owncloud/android/lib/common/network/WebdavUtils.java index 883a50fb..eabd73e5 100644 --- a/src/com/owncloud/android/lib/common/network/WebdavUtils.java +++ b/src/com/owncloud/android/lib/common/network/WebdavUtils.java @@ -32,16 +32,12 @@ import java.util.Locale; import android.net.Uri; -import com.owncloud.android.lib.common.http.HttpBaseMethod; +import com.owncloud.android.lib.common.http.methods.HttpBaseMethod; -import org.apache.commons.httpclient.Header; -import org.apache.commons.httpclient.HttpMethod; import org.apache.jackrabbit.webdav.property.DavPropertyName; import org.apache.jackrabbit.webdav.property.DavPropertyNameSet; import org.apache.jackrabbit.webdav.xml.Namespace; -import okhttp3.Response; - public class WebdavUtils { public static final SimpleDateFormat DISPLAY_DATE_FORMAT = new SimpleDateFormat( "dd.MM.yyyy hh:mm"); diff --git a/src/com/owncloud/android/lib/common/operations/RemoteOperationResult.java b/src/com/owncloud/android/lib/common/operations/RemoteOperationResult.java index 82023ccd..6669fa8b 100644 --- a/src/com/owncloud/android/lib/common/operations/RemoteOperationResult.java +++ b/src/com/owncloud/android/lib/common/operations/RemoteOperationResult.java @@ -28,7 +28,7 @@ import android.accounts.Account; import android.accounts.AccountsException; import com.owncloud.android.lib.common.accounts.AccountUtils.AccountNotFoundException; -import com.owncloud.android.lib.common.http.HttpBaseMethod; +import com.owncloud.android.lib.common.http.methods.HttpBaseMethod; import com.owncloud.android.lib.common.network.CertificateCombinedException; import com.owncloud.android.lib.common.utils.Log_OC; diff --git a/src/com/owncloud/android/lib/resources/files/ChunkedUploadRemoteFileOperation.java b/src/com/owncloud/android/lib/resources/files/ChunkedUploadRemoteFileOperation.java index 42bcd660..cc1555b2 100644 --- a/src/com/owncloud/android/lib/resources/files/ChunkedUploadRemoteFileOperation.java +++ b/src/com/owncloud/android/lib/resources/files/ChunkedUploadRemoteFileOperation.java @@ -72,79 +72,81 @@ public class ChunkedUploadRemoteFileOperation extends UploadRemoteFileOperation FileChannel channel = null; RandomAccessFile raf = null; - try { - File file = new File(mLocalPath); - raf = new RandomAccessFile(file, "r"); - channel = raf.getChannel(); - mEntity = new ChunkFromFileChannelRequestEntity(channel, mMimeType, CHUNK_SIZE, file); - synchronized (mDataTransferListeners) { - ((ProgressiveDataTransferer) mEntity) - .addDatatransferProgressListeners(mDataTransferListeners); - } - long offset = 0; - String uriPrefix = client.getWebdavUri() + WebdavUtils.encodePath(mRemotePath) + - "-chunking-" + Math.abs((new Random()).nextInt(9000) + 1000) + "-"; - long totalLength = file.length(); - long chunkCount = (long) Math.ceil((double) totalLength / CHUNK_SIZE); - String chunkSizeStr = String.valueOf(CHUNK_SIZE); - String totalLengthStr = String.valueOf(file.length()); - for (int chunkIndex = 0; chunkIndex < chunkCount; chunkIndex++, offset += CHUNK_SIZE) { - if (chunkIndex == chunkCount - 1) { - chunkSizeStr = String.valueOf(CHUNK_SIZE * chunkCount - totalLength); - } - if (mPutMethod != null) { - mPutMethod.releaseConnection(); // let the connection available - // for other methods - } - mPutMethod = new PutMethod(uriPrefix + chunkCount + "-" + chunkIndex); - if (mRequiredEtag != null && mRequiredEtag.length() > 0) { - mPutMethod.addRequestHeader(IF_MATCH_HEADER, "\"" + mRequiredEtag + "\""); - } - mPutMethod.addRequestHeader(OC_CHUNKED_HEADER, OC_CHUNKED_HEADER); - mPutMethod.addRequestHeader(OC_CHUNK_SIZE_HEADER, chunkSizeStr); - mPutMethod.addRequestHeader(OC_TOTAL_LENGTH_HEADER, totalLengthStr); - - mPutMethod.addRequestHeader(OC_CHUNK_X_OC_MTIME_HEADER, mFileLastModifTimestamp); - - ((ChunkFromFileChannelRequestEntity) mEntity).setOffset(offset); - mPutMethod.setRequestEntity(mEntity); - if (mCancellationRequested.get()) { - mPutMethod.abort(); - // next method will throw an exception - } - - if (chunkIndex == chunkCount - 1) { - // Added a high timeout to the last chunk due to when the last chunk - // arrives to the server with the last PUT, all chunks get assembled - // within that PHP request, so last one takes longer. - mPutMethod.getParams().setSoTimeout(LAST_CHUNK_TIMEOUT); - } - - status = client.executeMethod(mPutMethod); - - result = new RemoteOperationResult( - isSuccess(status), - mPutMethod - ); - - client.exhaustResponse(mPutMethod.getResponseBodyAsStream()); - Log_OC.d(TAG, "Upload of " + mLocalPath + " to " + mRemotePath + - ", chunk index " + chunkIndex + ", count " + chunkCount + - ", HTTP result status " + status); - - if (!isSuccess(status)) - break; - } - - } finally { - if (channel != null) - channel.close(); - if (raf != null) - raf.close(); - if (mPutMethod != null) - mPutMethod.releaseConnection(); // let the connection available for other methods - } + //TODO +// try { +// File file = new File(mLocalPath); +// raf = new RandomAccessFile(file, "r"); +// channel = raf.getChannel(); +// mEntity = new ChunkFromFileChannelRequestEntity(channel, mMimeType, CHUNK_SIZE, file); +// synchronized (mDataTransferListeners) { +// ((ProgressiveDataTransferer) mEntity) +// .addDatatransferProgressListeners(mDataTransferListeners); +// } +// +// long offset = 0; +// String uriPrefix = client.getWebdavUri() + WebdavUtils.encodePath(mRemotePath) + +// "-chunking-" + Math.abs((new Random()).nextInt(9000) + 1000) + "-"; +// long totalLength = file.length(); +// long chunkCount = (long) Math.ceil((double) totalLength / CHUNK_SIZE); +// String chunkSizeStr = String.valueOf(CHUNK_SIZE); +// String totalLengthStr = String.valueOf(file.length()); +// for (int chunkIndex = 0; chunkIndex < chunkCount; chunkIndex++, offset += CHUNK_SIZE) { +// if (chunkIndex == chunkCount - 1) { +// chunkSizeStr = String.valueOf(CHUNK_SIZE * chunkCount - totalLength); +// } +// if (mPutMethod != null) { +// mPutMethod.releaseConnection(); // let the connection available +// // for other methods +// } +// mPutMethod = new PutMethod(uriPrefix + chunkCount + "-" + chunkIndex); +// if (mRequiredEtag != null && mRequiredEtag.length() > 0) { +// mPutMethod.addRequestHeader(IF_MATCH_HEADER, "\"" + mRequiredEtag + "\""); +// } +// mPutMethod.addRequestHeader(OC_CHUNKED_HEADER, OC_CHUNKED_HEADER); +// mPutMethod.addRequestHeader(OC_CHUNK_SIZE_HEADER, chunkSizeStr); +// mPutMethod.addRequestHeader(OC_TOTAL_LENGTH_HEADER, totalLengthStr); +// +// mPutMethod.addRequestHeader(OC_CHUNK_X_OC_MTIME_HEADER, mFileLastModifTimestamp); +// +// ((ChunkFromFileChannelRequestEntity) mEntity).setOffset(offset); +// mPutMethod.setRequestEntity(mEntity); +// if (mCancellationRequested.get()) { +// mPutMethod.abort(); +// // next method will throw an exception +// } +// +// if (chunkIndex == chunkCount - 1) { +// // Added a high timeout to the last chunk due to when the last chunk +// // arrives to the server with the last PUT, all chunks get assembled +// // within that PHP request, so last one takes longer. +// mPutMethod.getParams().setSoTimeout(LAST_CHUNK_TIMEOUT); +// } +// +// status = client.executeMethod(mPutMethod); +// +// result = new RemoteOperationResult( +// isSuccess(status), +// mPutMethod +// ); +// +// client.exhaustResponse(mPutMethod.getResponseBodyAsStream()); +// Log_OC.d(TAG, "Upload of " + mLocalPath + " to " + mRemotePath + +// ", chunk index " + chunkIndex + ", count " + chunkCount + +// ", HTTP result status " + status); +// +// if (!isSuccess(status)) +// break; +// } +// +// } finally { +// if (channel != null) +// channel.close(); +// if (raf != null) +// raf.close(); +// if (mPutMethod != null) +// mPutMethod.releaseConnection(); // let the connection available for other methods +// } return result; } diff --git a/src/com/owncloud/android/lib/resources/files/UploadRemoteFileOperation.java b/src/com/owncloud/android/lib/resources/files/UploadRemoteFileOperation.java index 608b53db..899dd02d 100644 --- a/src/com/owncloud/android/lib/resources/files/UploadRemoteFileOperation.java +++ b/src/com/owncloud/android/lib/resources/files/UploadRemoteFileOperation.java @@ -25,6 +25,7 @@ package com.owncloud.android.lib.resources.files; import com.owncloud.android.lib.common.OwnCloudClient; +import com.owncloud.android.lib.common.http.HttpConstants; import com.owncloud.android.lib.common.http.HttpUtils; import com.owncloud.android.lib.common.network.FileRequestEntity; import com.owncloud.android.lib.common.network.OnDatatransferProgressListener; @@ -134,11 +135,6 @@ public class UploadRemoteFileOperation extends RemoteOperation { return result; } - public boolean isSuccess(int status) { - return ((status == HttpStatus.SC_OK || status == HttpStatus.SC_CREATED || - status == HttpStatus.SC_NO_CONTENT)); - } - protected RemoteOperationResult uploadFile(OwnCloudClient client) throws IOException { RemoteOperationResult result; try { @@ -204,4 +200,9 @@ public class UploadRemoteFileOperation extends RemoteOperation { // mPutMethod.abort(); // } } + + public boolean isSuccess(int status) { + return ((status == HttpConstants.HTTP_OK || status == HttpConstants.HTTP_CREATED || + status == HttpConstants.HTTP_NO_CONTENT)); + } } \ No newline at end of file diff --git a/src/com/owncloud/android/lib/resources/shares/CreateRemoteShareOperation.java b/src/com/owncloud/android/lib/resources/shares/CreateRemoteShareOperation.java index 6e658374..02dd5626 100644 --- a/src/com/owncloud/android/lib/resources/shares/CreateRemoteShareOperation.java +++ b/src/com/owncloud/android/lib/resources/shares/CreateRemoteShareOperation.java @@ -31,6 +31,7 @@ import android.net.Uri; import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.http.HttpConstants; +import com.owncloud.android.lib.common.http.HttpUtils; import com.owncloud.android.lib.common.http.methods.nonwebdav.PostMethod; import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperationResult; @@ -231,7 +232,11 @@ public class CreateRemoteShareOperation extends RemoteOperation { Uri.Builder uriBuilder = requestUri.buildUpon(); uriBuilder.appendEncodedPath(ShareUtils.SHARING_API_PATH); - PostMethod postMethod = new PostMethod(uriBuilder.build().toString(), formBody); + PostMethod postMethod = new PostMethod( + HttpUtils.stringUrlToHttpUrl(uriBuilder.build().toString()), + formBody + ); + postMethod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); postMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE); diff --git a/src/com/owncloud/android/lib/resources/shares/GetRemoteShareOperation.java b/src/com/owncloud/android/lib/resources/shares/GetRemoteShareOperation.java index 87a8d975..ad61f5a9 100644 --- a/src/com/owncloud/android/lib/resources/shares/GetRemoteShareOperation.java +++ b/src/com/owncloud/android/lib/resources/shares/GetRemoteShareOperation.java @@ -30,6 +30,7 @@ import android.net.Uri; import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.http.HttpConstants; +import com.owncloud.android.lib.common.http.HttpUtils; import com.owncloud.android.lib.common.http.methods.nonwebdav.GetMethod; import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperationResult; @@ -63,7 +64,11 @@ public class GetRemoteShareOperation extends RemoteOperation { uriBuilder.appendEncodedPath(ShareUtils.SHARING_API_PATH); uriBuilder.appendEncodedPath(Long.toString(mRemoteId)); - GetMethod getMethod = new GetMethod(uriBuilder.build().toString()); + GetMethod getMethod = new GetMethod( + HttpUtils.stringUrlToHttpUrl(uriBuilder.build().toString()) + ); + + getMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE); getMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE); int status = client.executeHttpMethod(getMethod); diff --git a/src/com/owncloud/android/lib/resources/shares/GetRemoteShareesOperation.java b/src/com/owncloud/android/lib/resources/shares/GetRemoteShareesOperation.java index 4da1a810..97836665 100644 --- a/src/com/owncloud/android/lib/resources/shares/GetRemoteShareesOperation.java +++ b/src/com/owncloud/android/lib/resources/shares/GetRemoteShareesOperation.java @@ -32,6 +32,7 @@ import android.net.Uri; import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.http.HttpConstants; +import com.owncloud.android.lib.common.http.HttpUtils; import com.owncloud.android.lib.common.http.methods.nonwebdav.GetMethod; import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperationResult; @@ -130,7 +131,10 @@ public class GetRemoteShareesOperation extends RemoteOperation{ uriBuilder.appendQueryParameter(PARAM_PAGE, String.valueOf(mPage)); uriBuilder.appendQueryParameter(PARAM_PER_PAGE, String.valueOf(mPerPage)); - GetMethod getMethod = new GetMethod(uriBuilder.build().toString()); + GetMethod getMethod = new GetMethod( + HttpUtils.stringUrlToHttpUrl(uriBuilder.build().toString()) + ); + getMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE); int status = client.executeHttpMethod(getMethod); diff --git a/src/com/owncloud/android/lib/resources/shares/GetRemoteSharesOperation.java b/src/com/owncloud/android/lib/resources/shares/GetRemoteSharesOperation.java index 796991fa..7a64bb6b 100644 --- a/src/com/owncloud/android/lib/resources/shares/GetRemoteSharesOperation.java +++ b/src/com/owncloud/android/lib/resources/shares/GetRemoteSharesOperation.java @@ -29,6 +29,7 @@ import android.net.Uri; import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.http.HttpConstants; +import com.owncloud.android.lib.common.http.HttpUtils; import com.owncloud.android.lib.common.http.methods.nonwebdav.GetMethod; import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperationResult; @@ -57,7 +58,10 @@ public class GetRemoteSharesOperation extends RemoteOperation { Uri.Builder uriBuilder = requestUri.buildUpon(); uriBuilder.appendEncodedPath(ShareUtils.SHARING_API_PATH); - GetMethod getMethod = new GetMethod(uriBuilder.build().toString()); + GetMethod getMethod = new GetMethod( + HttpUtils.stringUrlToHttpUrl(client.getBaseUri() + ShareUtils.SHARING_API_PATH) + ); + getMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE); int status = client.executeHttpMethod(getMethod); diff --git a/src/com/owncloud/android/lib/resources/shares/RemoveRemoteShareOperation.java b/src/com/owncloud/android/lib/resources/shares/RemoveRemoteShareOperation.java index 68510d37..aba0937d 100644 --- a/src/com/owncloud/android/lib/resources/shares/RemoveRemoteShareOperation.java +++ b/src/com/owncloud/android/lib/resources/shares/RemoveRemoteShareOperation.java @@ -31,6 +31,7 @@ import android.net.Uri; import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.http.HttpConstants; +import com.owncloud.android.lib.common.http.HttpUtils; import com.owncloud.android.lib.common.http.methods.nonwebdav.DeleteMethod; import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperationResult; @@ -72,7 +73,8 @@ public class RemoveRemoteShareOperation extends RemoteOperation { uriBuilder.appendEncodedPath(ShareUtils.SHARING_API_PATH); uriBuilder.appendEncodedPath(String.valueOf(mRemoteShareId)); - DeleteMethod deleteMethod = new DeleteMethod(uriBuilder.build().toString()); + DeleteMethod deleteMethod = new DeleteMethod( + HttpUtils.stringUrlToHttpUrl(uriBuilder.build().toString())); deleteMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE); diff --git a/src/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java b/src/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java index a7074c9e..875df6de 100644 --- a/src/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java +++ b/src/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java @@ -29,6 +29,7 @@ import android.net.Uri; import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.http.HttpConstants; +import com.owncloud.android.lib.common.http.HttpUtils; import com.owncloud.android.lib.common.http.methods.nonwebdav.PutMethod; import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperationResult; @@ -204,7 +205,11 @@ public class UpdateRemoteShareOperation extends RemoteOperation { uriBuilder.appendEncodedPath(ShareUtils.SHARING_API_PATH.substring(1)); uriBuilder.appendEncodedPath(Long.toString(mRemoteId)); - PutMethod putMethod = new PutMethod(uriBuilder.build().toString(), formBody); + PutMethod putMethod = new PutMethod( + HttpUtils.stringUrlToHttpUrl(uriBuilder.build().toString()), + formBody + ); + putMethod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); putMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE); diff --git a/src/com/owncloud/android/lib/resources/status/GetRemoteCapabilitiesOperation.java b/src/com/owncloud/android/lib/resources/status/GetRemoteCapabilitiesOperation.java index e22663b2..fa389fd4 100644 --- a/src/com/owncloud/android/lib/resources/status/GetRemoteCapabilitiesOperation.java +++ b/src/com/owncloud/android/lib/resources/status/GetRemoteCapabilitiesOperation.java @@ -31,6 +31,7 @@ import android.net.Uri; import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.http.HttpConstants; +import com.owncloud.android.lib.common.http.HttpUtils; import com.owncloud.android.lib.common.http.methods.nonwebdav.GetMethod; import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperationResult; @@ -128,9 +129,10 @@ public class GetRemoteCapabilitiesOperation extends RemoteOperation { uriBuilder.appendEncodedPath(OCS_ROUTE); // avoid starting "/" in this method uriBuilder.appendQueryParameter(PARAM_FORMAT, VALUE_FORMAT); - String url = uriBuilder.build().toString(); + GetMethod getMethod = new GetMethod( + HttpUtils.stringUrlToHttpUrl(uriBuilder.build().toString()) + ); - GetMethod getMethod = new GetMethod(url); getMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE); int status = client.executeHttpMethod(getMethod); diff --git a/src/com/owncloud/android/lib/resources/status/GetRemoteStatusOperation.java b/src/com/owncloud/android/lib/resources/status/GetRemoteStatusOperation.java index 8cea17b6..ce7e1c37 100644 --- a/src/com/owncloud/android/lib/resources/status/GetRemoteStatusOperation.java +++ b/src/com/owncloud/android/lib/resources/status/GetRemoteStatusOperation.java @@ -31,6 +31,7 @@ import android.net.Uri; import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.http.HttpClient; import com.owncloud.android.lib.common.http.HttpConstants; +import com.owncloud.android.lib.common.http.HttpUtils; import com.owncloud.android.lib.common.http.methods.nonwebdav.GetMethod; import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperationResult; @@ -77,13 +78,13 @@ public class GetRemoteStatusOperation extends RemoteOperation { boolean retval = false; String baseUrlSt = client.getBaseUri().toString(); try { - String url = baseUrlSt + OwnCloudClient.STATUS_PATH; - HttpClient.getOkHttpClient() .newBuilder() .followRedirects(false); - GetMethod getMethod = new GetMethod(url); + GetMethod getMethod = new GetMethod( + HttpUtils.stringUrlToHttpUrl(baseUrlSt + OwnCloudClient.STATUS_PATH) + ); int status = client.executeHttpMethod(getMethod); diff --git a/src/com/owncloud/android/lib/resources/users/GetRemoteUserAvatarOperation.java b/src/com/owncloud/android/lib/resources/users/GetRemoteUserAvatarOperation.java index 4097f1f9..f001c5d0 100644 --- a/src/com/owncloud/android/lib/resources/users/GetRemoteUserAvatarOperation.java +++ b/src/com/owncloud/android/lib/resources/users/GetRemoteUserAvatarOperation.java @@ -26,6 +26,7 @@ package com.owncloud.android.lib.resources.users; import com.owncloud.android.lib.common.OwnCloudClient; +import com.owncloud.android.lib.common.http.HttpUtils; import com.owncloud.android.lib.common.http.methods.nonwebdav.GetMethod; import com.owncloud.android.lib.common.network.WebdavUtils; import com.owncloud.android.lib.common.operations.RemoteOperation; @@ -86,7 +87,10 @@ public class GetRemoteUserAvatarOperation extends RemoteOperation { ; Log_OC.d(TAG, "avatar URI: " + url); - getMethod = new GetMethod(url); + getMethod = new GetMethod( + HttpUtils.stringUrlToHttpUrl(url) + ); + int status = client.executeHttpMethod(getMethod); if (isSuccess(status)) { diff --git a/src/com/owncloud/android/lib/resources/users/GetRemoteUserInfoOperation.java b/src/com/owncloud/android/lib/resources/users/GetRemoteUserInfoOperation.java index a5ee07da..1eeea6fd 100644 --- a/src/com/owncloud/android/lib/resources/users/GetRemoteUserInfoOperation.java +++ b/src/com/owncloud/android/lib/resources/users/GetRemoteUserInfoOperation.java @@ -24,14 +24,17 @@ package com.owncloud.android.lib.resources.users; -import java.util.ArrayList; -import org.json.JSONObject; import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.http.HttpConstants; +import com.owncloud.android.lib.common.http.HttpUtils; +import com.owncloud.android.lib.common.http.methods.nonwebdav.GetMethod; import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.common.utils.Log_OC; -import com.owncloud.android.lib.common.http.methods.nonwebdav.GetMethod; + +import org.json.JSONObject; + +import java.util.ArrayList; import okhttp3.Request; @@ -74,9 +77,10 @@ public class GetRemoteUserInfoOperation extends RemoteOperation { .addHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE) .build(); - String url = client.getBaseUri() + OCS_ROUTE; + GetMethod getMethod = new GetMethod( + HttpUtils.stringUrlToHttpUrl(client.getBaseUri() + OCS_ROUTE) + ); - GetMethod getMethod = new GetMethod(url); int status = client.executeHttpMethod(getMethod); if (isSuccess(status)) {