Hi,
I'm trying to access my content/document cloud with REST API for Android Platform,
My request call to get folder information and all working fine ,
Now that I'm trying to upload a file as per details mentioned here http://docs.oracle.com/en/cloud/paas/content-cloud/rest-api-content-management/op-documents-api-1.1-files-data-post.html
I ended up with 400 Bad Request , I don't know what I'm missing or not doing.
Can any one help me out.
Following are the frameworks & tools used,
Android SDK & Android Studio
Retrofit 2
Following are the gradle/library version
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.retrofit2:converter-gson:2.3.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'
compile 'com.squareup.okhttp3:okhttp:3.4.1'
Java/Android Http Request with Retrofit 2
File f = new File(filepath);
RequestBody fbody = RequestBody.create(MediaType.parse("text/plain"), f );
JSONObject obj = new JSONObject();
try {
obj.put("parentID","self");
} catch (JSONException e) {
e.printStackTrace();
}
RequestBody inputParams = RequestBody.create(MediaType.parse("text/plain"), obj.toString() );
Call<FolderItem> call = service.uploadFile(getString(R.string.authorization) ,
"multipart/form-data",
inputParams ,
MultipartBody.Part.createFormData( "primaryFile", filename, fbody)
);
Response<FolderItem> result = call.execute();
res = result.body();
REST API ( Retrofit 2 ) Response
--> POST https://contentcloud-incaritorsolutrial.documents.us2.oraclecloud.com/documents/api/1.1/files/data http/1.1
D/OkHttp: Content-Type: multipart/form-data
D/OkHttp: Content-Length: 12845
D/OkHttp: Authorization: Basic cmFtYW51amEuaEBjYXJpdG9yc29sdXRpb25zLmNvbTpTb2x1dGlvbnMxMiM=
D/OkHttp: --7a1df051-4bf6-4118-80b4-6ea1aaaa9857
D/OkHttp: Content-Disposition: form-data; name="jsonInputParameters"
D/OkHttp: Content-Transfer-Encoding: binary
D/OkHttp: Content-Type: text/plain; charset=utf-8
D/OkHttp: Content-Length: 19
D/OkHttp: {"parentID":"self"}
D/OkHttp: --7a1df051-4bf6-4118-80b4-6ea1aaaa9857
D/OkHttp: Content-Disposition: form-data; name="primaryFile"; filename="0707160007_1.jpeg"
D/OkHttp: Content-Type: text/plain
D/OkHttp: Content-Length: 12409
D/OkHttp: << FILE CONTENT HERE >>
D/OkHttp: --7a1df051-4bf6-4118-80b4-6ea1aaaa9857--
D/OkHttp: --> END POST (12845-byte body)
D/OkHttp: <-- 400 Bad Request https://contentcloud-incaritorsolutrial.documents.us2.oraclecloud.com/documents/api/1.1/files/data (3841ms)
D/OkHttp: Date: Mon, 05 Jun 2017 05:06:02 GMT
D/OkHttp: Server: Oracle-Application-Server-11g
D/OkHttp: Cache-Control: no-store
D/OkHttp: Pragma: no-cache
D/OkHttp: Expires: 0
D/OkHttp: X-ORACLE-DMS-ECID: 005KIxpdAsl6qIFpR0k3yd0001Gn0003i8
D/OkHttp: Set-Cookie: JSESSIONID=7RN2pUjpCNwQX9OowLA8uWqKD64VewIR194Y6NEzpxh9oBFEbE_O!1991547872!1880700994; path=/; HttpOnly
D/OkHttp: X-Content-Type-Options: nosniff
D/OkHttp: Connection: close
D/OkHttp: Content-Type: application/json; charset=utf-8
D/OkHttp: Content-Language: en
D/OkHttp: {
D/OkHttp: "errorCode": "-97",
D/OkHttp: "errorKey": "!csUnableToCheckIn,(null)!csServiceParametersMissing,CHECKIN_UNIVERSAL",
D/OkHttp: "errorMessage": "Content item '(null)' was not successfully checked in. One or more service parameters for service CHECKIN_UNIVERSAL are missing.",
D/OkHttp: "title": "Content item '(null)' was not successfully checked in. One or more service parameters for service CHECKIN_UNIVERSAL are missing.",
D/OkHttp: "type": "https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html"
D/OkHttp: }
D/OkHttp: <-- END HTTP (465-byte body)
Oracle Documentation example format for API request
An example of an alternative request body follows.
-----1234567890
Content-Disposition: form-data; name="jsonInputParameters"
{ "parentID":"FB4CD874EF94CD2CC1B60B72T0000000000100000001" }
-----1234567890
Content-Disposition: form-data; name="primaryFile"; filename="example.txt"
Content-Type: text/plain
<File Content>
-----1234567890--