1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-06-08 00:16:09 +00:00

Refactor wrapper constructors and start to implement uploadoperations in library

This commit is contained in:
davigonz 2018-06-12 17:42:32 +02:00
parent c676f694d6
commit 524dc587db
24 changed files with 172 additions and 130 deletions

@ -1 +1 @@
Subproject commit 054d7b57b27d7c258d717c8a326eed89e195d168 Subproject commit 466380e9bb8414d919391dbb14de7926dbfd387e

View File

@ -33,7 +33,7 @@ import android.net.Uri;
import com.owncloud.android.lib.common.authentication.OwnCloudCredentials; import com.owncloud.android.lib.common.authentication.OwnCloudCredentials;
import com.owncloud.android.lib.common.authentication.OwnCloudCredentialsFactory; import com.owncloud.android.lib.common.authentication.OwnCloudCredentialsFactory;
import com.owncloud.android.lib.common.authentication.OwnCloudCredentialsFactory.OwnCloudAnonymousCredentials; 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.network.RedirectionPath;
import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.lib.common.utils.Log_OC;
import com.owncloud.android.lib.resources.status.OwnCloudVersion; import com.owncloud.android.lib.resources.status.OwnCloudVersion;

View File

@ -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.IOException;
import java.io.InputStream; import java.io.InputStream;
@ -46,7 +48,7 @@ public abstract class HttpBaseMethod {
protected Request mRequest; protected Request mRequest;
protected Response mResponse; protected Response mResponse;
public HttpBaseMethod (HttpUrl httpUrl) { protected HttpBaseMethod (HttpUrl httpUrl) {
mOkHttpClient = HttpClient.getOkHttpClient(); mOkHttpClient = HttpClient.getOkHttpClient();
mRequest = new Request.Builder() mRequest = new Request.Builder()
.url(httpUrl) .url(httpUrl)
@ -58,7 +60,6 @@ public abstract class HttpBaseMethod {
return mRequest.headers(); return mRequest.headers();
} }
// Request headers
public void addRequestHeader(String name, String value) { public void addRequestHeader(String name, String value) {
mRequest.newBuilder() mRequest.newBuilder()
.addHeader(name, value) .addHeader(name, value)

View File

@ -24,22 +24,26 @@
package com.owncloud.android.lib.common.http.methods.nonwebdav; package com.owncloud.android.lib.common.http.methods.nonwebdav;
import java.io.IOException;
import okhttp3.HttpUrl;
/** /**
* OkHttp delete calls wrapper * OkHttp delete calls wrapper
* @author David González Verdugo * @author David González Verdugo
*/ */
public class DeleteMethod extends HttpMethod{ public class DeleteMethod extends HttpMethod{
public DeleteMethod(String httpUrl) { public DeleteMethod(HttpUrl httpUrl) {
super(httpUrl); super(httpUrl);
} }
@Override @Override
public int execute() throws Exception { public int execute() throws IOException {
mRequest.newBuilder() mRequest = mRequest.newBuilder()
.delete() .delete()
.build(); .build();
return super.executeRequest(); return super.execute();
} }
} }

View File

@ -34,20 +34,16 @@ import okhttp3.HttpUrl;
*/ */
public class GetMethod extends HttpMethod { public class GetMethod extends HttpMethod {
public GetMethod(String httpUrl) {
super(httpUrl);
}
public GetMethod(HttpUrl httpUrl) { public GetMethod(HttpUrl httpUrl) {
super(httpUrl); super(httpUrl);
} }
@Override @Override
public int execute() throws IOException { public int execute() throws IOException {
mRequest.newBuilder() mRequest = mRequest.newBuilder()
.get() .get()
.build(); .build();
return super.executeRequest(); return super.execute();
} }
} }

View File

@ -24,12 +24,11 @@
package com.owncloud.android.lib.common.http.methods.nonwebdav; 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 java.io.IOException;
import okhttp3.HttpUrl; import okhttp3.HttpUrl;
import okhttp3.Request;
/** /**
* Wrapper to perform OkHttp calls * Wrapper to perform OkHttp calls
@ -42,7 +41,8 @@ public abstract class HttpMethod extends HttpBaseMethod {
super(httpUrl); super(httpUrl);
} }
public int executeRequest() throws IOException { @Override
public int execute() throws IOException {
mResponse = mOkHttpClient.newCall(mRequest).execute(); mResponse = mOkHttpClient.newCall(mRequest).execute();
return super.getStatusCode(); return super.getStatusCode();
} }

View File

@ -24,6 +24,9 @@
package com.owncloud.android.lib.common.http.methods.nonwebdav; package com.owncloud.android.lib.common.http.methods.nonwebdav;
import java.io.IOException;
import okhttp3.HttpUrl;
import okhttp3.RequestBody; import okhttp3.RequestBody;
/** /**
@ -34,17 +37,17 @@ public class PostMethod extends HttpMethod {
private RequestBody mRequestBody; private RequestBody mRequestBody;
public PostMethod(String httpUrl, RequestBody requestBody){ public PostMethod(HttpUrl httpUrl, RequestBody requestBody){
super(httpUrl); super(httpUrl);
mRequestBody = requestBody; mRequestBody = requestBody;
} }
@Override @Override
public int execute() throws Exception { public int execute() throws IOException {
mRequest.newBuilder() mRequest = mRequest.newBuilder()
.post(mRequestBody) .post(mRequestBody)
.build(); .build();
return super.executeRequest(); return super.execute();
} }
} }

View File

@ -24,23 +24,26 @@
package com.owncloud.android.lib.common.http.methods.nonwebdav; package com.owncloud.android.lib.common.http.methods.nonwebdav;
import java.io.IOException;
import okhttp3.HttpUrl;
import okhttp3.RequestBody; import okhttp3.RequestBody;
public class PutMethod extends HttpMethod{ public class PutMethod extends HttpMethod{
private RequestBody mRequestBody; private RequestBody mRequestBody;
public PutMethod(String httpUrl, RequestBody requestBody){ public PutMethod(HttpUrl httpUrl, RequestBody requestBody){
super(httpUrl); super(httpUrl);
mRequestBody = requestBody; mRequestBody = requestBody;
} }
@Override @Override
public int execute() throws Exception { public int execute() throws IOException {
mRequest.newBuilder() mRequest = mRequest.newBuilder()
.put(mRequestBody) .put(mRequestBody)
.build(); .build();
return super.executeRequest(); return super.execute();
} }
} }

View File

@ -24,7 +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.HttpBaseMethod; import com.owncloud.android.lib.common.http.methods.HttpBaseMethod;
import at.bitfire.dav4android.DavOCResource; import at.bitfire.dav4android.DavOCResource;
import at.bitfire.dav4android.DavResource; import at.bitfire.dav4android.DavResource;
@ -38,8 +38,8 @@ public abstract class DavMethod extends HttpBaseMethod {
protected DavOCResource mDavResource; protected DavOCResource mDavResource;
public DavMethod(HttpUrl httpUrl) { protected DavMethod(HttpUrl httpUrl) {
super(); super(httpUrl);
mDavResource = new DavOCResource( mDavResource = new DavOCResource(
mOkHttpClient, mOkHttpClient,
httpUrl httpUrl

View File

@ -50,7 +50,7 @@ public class PutMethod extends DavMethod {
}; };
@Override @Override
public int execute() throws IOException, HttpException, DavException { public int execute() throws IOException, HttpException {
try { try {
mDavResource.put( mDavResource.put(
mRequestBody, mRequestBody,

View File

@ -32,16 +32,12 @@ import java.util.Locale;
import android.net.Uri; 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.DavPropertyName;
import org.apache.jackrabbit.webdav.property.DavPropertyNameSet; import org.apache.jackrabbit.webdav.property.DavPropertyNameSet;
import org.apache.jackrabbit.webdav.xml.Namespace; import org.apache.jackrabbit.webdav.xml.Namespace;
import okhttp3.Response;
public class WebdavUtils { public class WebdavUtils {
public static final SimpleDateFormat DISPLAY_DATE_FORMAT = new SimpleDateFormat( public static final SimpleDateFormat DISPLAY_DATE_FORMAT = new SimpleDateFormat(
"dd.MM.yyyy hh:mm"); "dd.MM.yyyy hh:mm");

View File

@ -28,7 +28,7 @@ import android.accounts.Account;
import android.accounts.AccountsException; import android.accounts.AccountsException;
import com.owncloud.android.lib.common.accounts.AccountUtils.AccountNotFoundException; 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.network.CertificateCombinedException;
import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.lib.common.utils.Log_OC;

View File

@ -72,79 +72,81 @@ public class ChunkedUploadRemoteFileOperation extends UploadRemoteFileOperation
FileChannel channel = null; FileChannel channel = null;
RandomAccessFile raf = 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; //TODO
String uriPrefix = client.getWebdavUri() + WebdavUtils.encodePath(mRemotePath) + // try {
"-chunking-" + Math.abs((new Random()).nextInt(9000) + 1000) + "-"; // File file = new File(mLocalPath);
long totalLength = file.length(); // raf = new RandomAccessFile(file, "r");
long chunkCount = (long) Math.ceil((double) totalLength / CHUNK_SIZE); // channel = raf.getChannel();
String chunkSizeStr = String.valueOf(CHUNK_SIZE); // mEntity = new ChunkFromFileChannelRequestEntity(channel, mMimeType, CHUNK_SIZE, file);
String totalLengthStr = String.valueOf(file.length()); // synchronized (mDataTransferListeners) {
for (int chunkIndex = 0; chunkIndex < chunkCount; chunkIndex++, offset += CHUNK_SIZE) { // ((ProgressiveDataTransferer) mEntity)
if (chunkIndex == chunkCount - 1) { // .addDatatransferProgressListeners(mDataTransferListeners);
chunkSizeStr = String.valueOf(CHUNK_SIZE * chunkCount - totalLength); // }
} //
if (mPutMethod != null) { // long offset = 0;
mPutMethod.releaseConnection(); // let the connection available // String uriPrefix = client.getWebdavUri() + WebdavUtils.encodePath(mRemotePath) +
// for other methods // "-chunking-" + Math.abs((new Random()).nextInt(9000) + 1000) + "-";
} // long totalLength = file.length();
mPutMethod = new PutMethod(uriPrefix + chunkCount + "-" + chunkIndex); // long chunkCount = (long) Math.ceil((double) totalLength / CHUNK_SIZE);
if (mRequiredEtag != null && mRequiredEtag.length() > 0) { // String chunkSizeStr = String.valueOf(CHUNK_SIZE);
mPutMethod.addRequestHeader(IF_MATCH_HEADER, "\"" + mRequiredEtag + "\""); // String totalLengthStr = String.valueOf(file.length());
} // for (int chunkIndex = 0; chunkIndex < chunkCount; chunkIndex++, offset += CHUNK_SIZE) {
mPutMethod.addRequestHeader(OC_CHUNKED_HEADER, OC_CHUNKED_HEADER); // if (chunkIndex == chunkCount - 1) {
mPutMethod.addRequestHeader(OC_CHUNK_SIZE_HEADER, chunkSizeStr); // chunkSizeStr = String.valueOf(CHUNK_SIZE * chunkCount - totalLength);
mPutMethod.addRequestHeader(OC_TOTAL_LENGTH_HEADER, totalLengthStr); // }
// if (mPutMethod != null) {
mPutMethod.addRequestHeader(OC_CHUNK_X_OC_MTIME_HEADER, mFileLastModifTimestamp); // mPutMethod.releaseConnection(); // let the connection available
// // for other methods
((ChunkFromFileChannelRequestEntity) mEntity).setOffset(offset); // }
mPutMethod.setRequestEntity(mEntity); // mPutMethod = new PutMethod(uriPrefix + chunkCount + "-" + chunkIndex);
if (mCancellationRequested.get()) { // if (mRequiredEtag != null && mRequiredEtag.length() > 0) {
mPutMethod.abort(); // mPutMethod.addRequestHeader(IF_MATCH_HEADER, "\"" + mRequiredEtag + "\"");
// next method will throw an exception // }
} // mPutMethod.addRequestHeader(OC_CHUNKED_HEADER, OC_CHUNKED_HEADER);
// mPutMethod.addRequestHeader(OC_CHUNK_SIZE_HEADER, chunkSizeStr);
if (chunkIndex == chunkCount - 1) { // mPutMethod.addRequestHeader(OC_TOTAL_LENGTH_HEADER, totalLengthStr);
// 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 // mPutMethod.addRequestHeader(OC_CHUNK_X_OC_MTIME_HEADER, mFileLastModifTimestamp);
// within that PHP request, so last one takes longer. //
mPutMethod.getParams().setSoTimeout(LAST_CHUNK_TIMEOUT); // ((ChunkFromFileChannelRequestEntity) mEntity).setOffset(offset);
} // mPutMethod.setRequestEntity(mEntity);
// if (mCancellationRequested.get()) {
status = client.executeMethod(mPutMethod); // mPutMethod.abort();
// // next method will throw an exception
result = new RemoteOperationResult( // }
isSuccess(status), //
mPutMethod // 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
client.exhaustResponse(mPutMethod.getResponseBodyAsStream()); // // within that PHP request, so last one takes longer.
Log_OC.d(TAG, "Upload of " + mLocalPath + " to " + mRemotePath + // mPutMethod.getParams().setSoTimeout(LAST_CHUNK_TIMEOUT);
", chunk index " + chunkIndex + ", count " + chunkCount + // }
", HTTP result status " + status); //
// status = client.executeMethod(mPutMethod);
if (!isSuccess(status)) //
break; // result = new RemoteOperationResult(
} // isSuccess(status),
// mPutMethod
} finally { // );
if (channel != null) //
channel.close(); // client.exhaustResponse(mPutMethod.getResponseBodyAsStream());
if (raf != null) // Log_OC.d(TAG, "Upload of " + mLocalPath + " to " + mRemotePath +
raf.close(); // ", chunk index " + chunkIndex + ", count " + chunkCount +
if (mPutMethod != null) // ", HTTP result status " + status);
mPutMethod.releaseConnection(); // let the connection available for other methods //
} // 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; return result;
} }

View File

@ -25,6 +25,7 @@
package com.owncloud.android.lib.resources.files; package com.owncloud.android.lib.resources.files;
import com.owncloud.android.lib.common.OwnCloudClient; 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.HttpUtils;
import com.owncloud.android.lib.common.network.FileRequestEntity; import com.owncloud.android.lib.common.network.FileRequestEntity;
import com.owncloud.android.lib.common.network.OnDatatransferProgressListener; import com.owncloud.android.lib.common.network.OnDatatransferProgressListener;
@ -134,11 +135,6 @@ public class UploadRemoteFileOperation extends RemoteOperation {
return result; 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 { protected RemoteOperationResult uploadFile(OwnCloudClient client) throws IOException {
RemoteOperationResult result; RemoteOperationResult result;
try { try {
@ -204,4 +200,9 @@ public class UploadRemoteFileOperation extends RemoteOperation {
// mPutMethod.abort(); // mPutMethod.abort();
// } // }
} }
public boolean isSuccess(int status) {
return ((status == HttpConstants.HTTP_OK || status == HttpConstants.HTTP_CREATED ||
status == HttpConstants.HTTP_NO_CONTENT));
}
} }

View File

@ -31,6 +31,7 @@ import android.net.Uri;
import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.lib.common.http.HttpConstants; 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.http.methods.nonwebdav.PostMethod;
import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperation;
import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.common.operations.RemoteOperationResult;
@ -231,7 +232,11 @@ public class CreateRemoteShareOperation extends RemoteOperation {
Uri.Builder uriBuilder = requestUri.buildUpon(); Uri.Builder uriBuilder = requestUri.buildUpon();
uriBuilder.appendEncodedPath(ShareUtils.SHARING_API_PATH); 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.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
postMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE); postMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE);

View File

@ -30,6 +30,7 @@ import android.net.Uri;
import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.lib.common.http.HttpConstants; 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.http.methods.nonwebdav.GetMethod;
import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperation;
import com.owncloud.android.lib.common.operations.RemoteOperationResult; 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(ShareUtils.SHARING_API_PATH);
uriBuilder.appendEncodedPath(Long.toString(mRemoteId)); 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); getMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE);
int status = client.executeHttpMethod(getMethod); int status = client.executeHttpMethod(getMethod);

View File

@ -32,6 +32,7 @@ import android.net.Uri;
import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.lib.common.http.HttpConstants; 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.http.methods.nonwebdav.GetMethod;
import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperation;
import com.owncloud.android.lib.common.operations.RemoteOperationResult; 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_PAGE, String.valueOf(mPage));
uriBuilder.appendQueryParameter(PARAM_PER_PAGE, String.valueOf(mPerPage)); 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); getMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE);
int status = client.executeHttpMethod(getMethod); int status = client.executeHttpMethod(getMethod);

View File

@ -29,6 +29,7 @@ import android.net.Uri;
import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.lib.common.http.HttpConstants; 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.http.methods.nonwebdav.GetMethod;
import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperation;
import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.common.operations.RemoteOperationResult;
@ -57,7 +58,10 @@ public class GetRemoteSharesOperation extends RemoteOperation {
Uri.Builder uriBuilder = requestUri.buildUpon(); Uri.Builder uriBuilder = requestUri.buildUpon();
uriBuilder.appendEncodedPath(ShareUtils.SHARING_API_PATH); 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); getMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE);
int status = client.executeHttpMethod(getMethod); int status = client.executeHttpMethod(getMethod);

View File

@ -31,6 +31,7 @@ import android.net.Uri;
import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.lib.common.http.HttpConstants; 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.http.methods.nonwebdav.DeleteMethod;
import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperation;
import com.owncloud.android.lib.common.operations.RemoteOperationResult; 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(ShareUtils.SHARING_API_PATH);
uriBuilder.appendEncodedPath(String.valueOf(mRemoteShareId)); 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); deleteMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE);

View File

@ -29,6 +29,7 @@ import android.net.Uri;
import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.lib.common.http.HttpConstants; 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.http.methods.nonwebdav.PutMethod;
import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperation;
import com.owncloud.android.lib.common.operations.RemoteOperationResult; 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(ShareUtils.SHARING_API_PATH.substring(1));
uriBuilder.appendEncodedPath(Long.toString(mRemoteId)); 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.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
putMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE); putMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE);

View File

@ -31,6 +31,7 @@ import android.net.Uri;
import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.lib.common.http.HttpConstants; 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.http.methods.nonwebdav.GetMethod;
import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperation;
import com.owncloud.android.lib.common.operations.RemoteOperationResult; 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.appendEncodedPath(OCS_ROUTE); // avoid starting "/" in this method
uriBuilder.appendQueryParameter(PARAM_FORMAT, VALUE_FORMAT); 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); getMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE);
int status = client.executeHttpMethod(getMethod); int status = client.executeHttpMethod(getMethod);

View File

@ -31,6 +31,7 @@ import android.net.Uri;
import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.lib.common.http.HttpClient; import com.owncloud.android.lib.common.http.HttpClient;
import com.owncloud.android.lib.common.http.HttpConstants; 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.http.methods.nonwebdav.GetMethod;
import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperation;
import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.common.operations.RemoteOperationResult;
@ -77,13 +78,13 @@ public class GetRemoteStatusOperation extends RemoteOperation {
boolean retval = false; boolean retval = false;
String baseUrlSt = client.getBaseUri().toString(); String baseUrlSt = client.getBaseUri().toString();
try { try {
String url = baseUrlSt + OwnCloudClient.STATUS_PATH;
HttpClient.getOkHttpClient() HttpClient.getOkHttpClient()
.newBuilder() .newBuilder()
.followRedirects(false); .followRedirects(false);
GetMethod getMethod = new GetMethod(url); GetMethod getMethod = new GetMethod(
HttpUtils.stringUrlToHttpUrl(baseUrlSt + OwnCloudClient.STATUS_PATH)
);
int status = client.executeHttpMethod(getMethod); int status = client.executeHttpMethod(getMethod);

View File

@ -26,6 +26,7 @@
package com.owncloud.android.lib.resources.users; package com.owncloud.android.lib.resources.users;
import com.owncloud.android.lib.common.OwnCloudClient; 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.http.methods.nonwebdav.GetMethod;
import com.owncloud.android.lib.common.network.WebdavUtils; import com.owncloud.android.lib.common.network.WebdavUtils;
import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperation;
@ -86,7 +87,10 @@ public class GetRemoteUserAvatarOperation extends RemoteOperation {
; ;
Log_OC.d(TAG, "avatar URI: " + url); Log_OC.d(TAG, "avatar URI: " + url);
getMethod = new GetMethod(url); getMethod = new GetMethod(
HttpUtils.stringUrlToHttpUrl(url)
);
int status = client.executeHttpMethod(getMethod); int status = client.executeHttpMethod(getMethod);
if (isSuccess(status)) { if (isSuccess(status)) {

View File

@ -24,14 +24,17 @@
package com.owncloud.android.lib.resources.users; 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.OwnCloudClient;
import com.owncloud.android.lib.common.http.HttpConstants; 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.RemoteOperation;
import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.common.operations.RemoteOperationResult;
import com.owncloud.android.lib.common.utils.Log_OC; 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; import okhttp3.Request;
@ -74,9 +77,10 @@ public class GetRemoteUserInfoOperation extends RemoteOperation {
.addHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE) .addHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE)
.build(); .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); int status = client.executeHttpMethod(getMethod);
if (isSuccess(status)) { if (isSuccess(status)) {