I am having a terrible time trying to complete a large file upload using REST/HTTP Post.
I am able to start an upload session and append to an active session but when I call finsih I get the following error:
Error in call to API function "files/upload_session/finish": Missing or empty HTTP "Content-Type" header. Expecting one of "application/octet-stream", "text/plain; charset=dropbox-cors-hack"
My C++ code:
bool FinishSession(char* TargetPath,char* SessionID, char* Offset)
{
CRect rest;
bool bAutoReconnect=true;
if(!rest.Connect("content.dropboxapi.com",443,true,bAutoReconnect))
return 0;
//build dropbox args
char DropboxArgs[255];
ZeroMemory(DropboxArgs,255);
sprintf(DropboxArgs,"{\"cursor\": {\"session_id\":\"%s\",\"offset\":%s},\"commit\":{\"path\":\"%s\",\"mode\":{\".tag\":\"overwrite\"},\"autorename\":false,\"mute\":false}}",SessionID,Offset,TargetPath);
//add header vars
rest.AddHeader("Authorization",AxxToken);
rest.AddHeader("Content-Type","application/octet-stream");
rest.AddHeader("Dropbox-API-Arg",DropboxArgs);
//POST to Dropbox
const char *response = rest.Post("POST","/2/files/upload_session/finish");
if(response==NULL)
return 0;
CJson json(response);
if(!json.Find("name"))
{
//response=Error in call to API function "files/upload_session/finish": Missing or empty HTTP "Content-Type" header. Expecting one of "application/octet-stream", "text/plain; charset=dropbox-cors-hack"
return 0;
}
return 1;
}