Related to question Creating Folder using REST and JavaScript, I used 3 approaches to create folder with REST API (native C++ casablanca lib):
request.set_method(methods::POST);
request.headers().add(U("X-RequestDigest"), my_digest);
request.headers().add(U("content-type"), U("application/json; odata=verbose"));
Works OK
request.set_request_uri(web::uri::encode_uri(U("/_api/Web/Folders/add('/Shared Documents/new folder created')")));HTTP 400 Bad request (example from MSDN)
request.set_request_uri(web::uri::encode_uri(U("/_api/Web/GetFolderByServerRelativeUrl('/Shared Documents')/Folders"))); request.set_body(U("{ '__metadata':{ 'type': 'SP.Folder' }, 'ServerRelativeUrl':'new folder created' }"));HTTP 400 Bad request (example from MSDN)
request.set_request_uri(web::uri::encode_uri(U("/_api/Web/Folders/"))); request.set_body(U("{ '__metadata':{ 'type': 'SP.Folder' }, 'ServerRelativeUrl':'Shared Documents/new folder created' }"));
Are there any ideas why only #1 works? Can anyone confirm that it works from another environments like JavaScript?