diff --git a/sample_client/assets/oc_sample.txt b/sample_client/assets/oc_sample.txt new file mode 100644 index 00000000..49254be3 --- /dev/null +++ b/sample_client/assets/oc_sample.txt @@ -0,0 +1 @@ +Testing ownCloud uploads diff --git a/sample_client/res/values/strings.xml b/sample_client/res/values/strings.xml index 783fbab1..6ef9c46c 100644 --- a/sample_client/res/values/strings.xml +++ b/sample_client/res/values/strings.xml @@ -42,7 +42,7 @@ to_upload downloaded Sample file could not be saved in temporal folder; upload will not work - oc_sample.png + oc_sample.png image/png Downloaded file could not be deleted diff --git a/sample_client/src/com/owncloud/android/lib/sampleclient/MainActivity.java b/sample_client/src/com/owncloud/android/lib/sampleclient/MainActivity.java index 0630910e..ca1128fc 100644 --- a/sample_client/src/com/owncloud/android/lib/sampleclient/MainActivity.java +++ b/sample_client/src/com/owncloud/android/lib/sampleclient/MainActivity.java @@ -41,7 +41,6 @@ import android.widget.Toast; import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.OwnCloudClientFactory; import com.owncloud.android.lib.common.authentication.OwnCloudCredentialsFactory; -import com.owncloud.android.lib.common.network.FileRequestEntity; import com.owncloud.android.lib.common.network.OnDatatransferProgressListener; import com.owncloud.android.lib.common.operations.OnRemoteOperationListener; import com.owncloud.android.lib.common.operations.RemoteOperation; @@ -53,7 +52,6 @@ import com.owncloud.android.lib.resources.files.RemoteFile; import com.owncloud.android.lib.resources.files.RemoveRemoteFileOperation; import com.owncloud.android.lib.resources.files.UploadRemoteFileOperation; -import org.apache.commons.httpclient.methods.RequestEntity; import org.json.JSONException; import org.json.JSONObject; @@ -102,7 +100,12 @@ public class MainActivity extends Activity implements OnRemoteOperationListener, private static final String OC_TOTAL_LENGTH_HEADER = "OC-Total-Length"; private static final String OC_X_OC_MTIME_HEADER = "X-OC-Mtime"; - private static final String IF_MATCH_HEADER = "If-Match"; + private static final String AUTHORIZATION_HEADER = "Authorization"; + private static final String USER_AGENT_HEADER = "User-Agent"; + private static final String CONTENT_TYPE_HEADER = "Content-Type"; + + private static final String USER_AGENT_VALUE = "Mozilla/5.0 (Android) ownCloud-android/2.7.0"; + private static final String CONTENT_TYPE_VALUE = "multipart/form-data"; private OkHttpClient mOkHttpClient; @@ -263,7 +266,8 @@ public class MainActivity extends Activity implements OnRemoteOperationListener, final Request request = new Request.Builder() .url(URL + NEW_WEBDAV_PATH + USERNAME) - .addHeader("Authorization", mCredentials) + .addHeader(AUTHORIZATION_HEADER, mCredentials) + .addHeader(USER_AGENT_HEADER, USER_AGENT_VALUE) .method("PROPFIND", null) .build(); @@ -309,8 +313,6 @@ public class MainActivity extends Activity implements OnRemoteOperationListener, Long timeStampLong = fileToUpload.lastModified()/1000; String timeStamp = timeStampLong.toString(); - RequestEntity entity = new FileRequestEntity(fileToUpload, mimeType); - // Let's first use OKHttp with the new endpoint without depending on our library operations // UploadRemoteFileOperation uploadOperation = new UploadRemoteFileOperation(fileToUpload.getAbsolutePath(), remotePath, mimeType, timeStamp); @@ -319,19 +321,22 @@ public class MainActivity extends Activity implements OnRemoteOperationListener, if (!validServerAddress()) return; - RequestBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM) - .addFormDataPart("testImage", fileToUpload.getName(), RequestBody.create(mediaType, fileToUpload)) + RequestBody requestBody = new MultipartBody.Builder() + .setType(MultipartBody.FORM) + .addFormDataPart("data", fileToUpload.getName(), RequestBody.create(mediaType, fileToUpload)) + .addFormDataPart("name", fileToUpload.getName()) .build(); final Request request = new Request.Builder() .url(URL + NEW_WEBDAV_PATH + USERNAME + remotePath) - .addHeader("Authorization", mCredentials) + .addHeader(AUTHORIZATION_HEADER, mCredentials) + .addHeader(USER_AGENT_HEADER, USER_AGENT_VALUE) + .addHeader(CONTENT_TYPE_HEADER, CONTENT_TYPE_VALUE) .addHeader(OC_TOTAL_LENGTH_HEADER, String.valueOf(fileToUpload.length())) .addHeader(OC_X_OC_MTIME_HEADER, timeStamp) .put(requestBody) .build(); - mOkHttpClient.newCall(request).enqueue(new Callback() { @Override public void onResponse(Call call, final Response response) throws IOException { @@ -346,7 +351,7 @@ public class MainActivity extends Activity implements OnRemoteOperationListener, final String putResult = response.body().string(); - showSuccessfulMessage(putResult); + showSuccessfulMessage("Successful upload"); } }