【发布时间】:2021-08-29 05:10:30
【问题描述】:
private void uploadDocToSharePoint(String token, Resource resource, String folderName) {
try {
String uploadUrl = Utils.SHARE_POINT_DOMAIN + "_api/web/getfolderbyserverrelativeurl('" + folderName + "')/files/add(url='" + resource.getFilename() + "', overwrite=true)";
URL url = new URL(uploadUrl);
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
// Set Header
httpConn.setDoOutput(true);
httpConn.setDoOutput(true);
httpConn.setRequestMethod("POST");
httpConn.setRequestProperty("Authorization", "Bearer " + token);
httpConn.setRequestProperty("accept", "application/json; odata=verbose");
httpConn.setRequestProperty("Content-Type", "application/xml");
OutputStream os = httpConn.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os, StandardCharsets.UTF_8);
osw.write("Just Some Text");
osw.flush();
osw.close();
os.close(); //don't forget to close the OutputStream
httpConn.connect();
System.out.println(httpConn.getResponseCode());
System.out.println(httpConn.getResponseMessage());
String result;
BufferedInputStream bis = new BufferedInputStream(httpConn.getInputStream());
ByteArrayOutputStream buf = new ByteArrayOutputStream();
int result2 = bis.read();
while(result2 != -1) {
buf.write((byte) result2);
result2 = bis.read();
}
result = buf.toString();
System.out.println(result);
} catch (Exception e) {
System.out.println("Error while reading file: " + e.getMessage());
}
}
httpConn.getResponseCode() 是 400,httpConn.getResponseMessage() 是 Bad Request。
我已经使用在 Postman 上的此类中生成的 URL 测试了此请求。
它工作正常。
所以我确信 url 和 token 是正确的。
它成功创建了一个空文件。
但正如我提到的,响应状态是400 和Bad Request。
我不确定下面的课程有什么问题
分享点指南here
我的课从here复制
截图here
【问题讨论】:
-
“Content-Type = application/xml”与“只是一些文本”?
-
你是什么意思? @DirkDeyne
-
我在屏蔽“Content-Type = application/xml”后尝试过。但同样的问题
-
添加截图
-
请回复@DirkDeyne
标签: java spring-boot post request httpurlconnection