我是sharepoint rest API的新手,在将文件(图片,文档,pdf等)上传到sharepoint时遇到了一些问题。提前谢谢。
以下是我们的要求。
用户将上传存储在应用服务器中特定位置的文档。
cron作业将在应用程序服务器上运行,并根据业务需要将文档推送到在线共享点。
为实现这一目标,我们遵循以下步骤。
通过AZURE访问令牌完成身份验证(我们已使用客户端凭据流从AZURE AD获取访问令牌,并能够使用访问令牌与sahrepoint在线通信。)
我们已经使用了sharepoint在线REST API来进行上传,下载等文件操作。使用java代码。
在这里,我们可以从sharepoint在线下载文件,但是当我们上传文件时,我们得到的响应为“BAD REQUEST”,状态代码为“400”
Sharepoint online rest API创建文件:
url: http://site url/_api/web/GetFolderByServerRelativeUrl('/Folder Name')/Files/add(url='a.txt',overwrite=true)
method: POST
body: "Contents of file"
Headers:
Authorization: "Bearer " + accessToken
X-RequestDigest: form digest value
content-length:length of post body
我的Java代码:
//Create HttpURLConnection
String token ="js#1ikssj......RDS2" // This is just sample
String request = "Create a File with raw string !!!";
java.net.URL url = new java.net.URL("http://site url/_api/web/GetFolderByServerRelativeUrl('/Folder Name')/Files/add(url='a.txt',overwrite=true)");
java.net.URLConnection connection = url.openConnection();
java.net.HttpURLConnection httpConn = (java.net.HttpURLConnection) connection;
//Set Header
httpConn.setDoOutput(true);
httpConn.setDoInput(true);
httpConn.setRequestMethod("POST");
httpConn.setRequestProperty("Authorization", "Bearer " +token);
httpConn.setRequestProperty ("Accept", "application/json;odata=verbose");
httpConn.setRequestProperty("binaryStringRequestBody", "true");
//Send Request
java.io.DataOutputStream wr = new java.io.DataOutputStream(httpConn.getOutputStream ());
wr.writeBytes(request);
wr.flush();
wr.close();
//Read the response.
String StatusMessage = "HTTP ResponseCode: " + httpConn.getResponseCode() + " "+ httpConn.getResponseMessage();
回复:400 - 不良请求。
答案 0 :(得分:0)
您可以看一下该项目,在其中可以找到上载文件,创建文件夹,管理文件夹用户权限等的有效实现。与其他API的大多数常用操作相比,使用API非常容易