Есть ли альтернативный способ обновления списка элементов без использования метода PATCH или базовых SDK (поскольку я делаю это через HTTP-клиент).
public Boolean updateItem(Item i) {
if(i.getId() != null) {
String URL = "https://graph.microsoft.com/v1.0/sites/"+siteId+"/lists/"+listId+"/items/"+i.getId()+"";
try {
URL url = new URL(URL);
HttpURLConnection http = (HttpURLConnection) url.openConnection();
http.setRequestMethod("PATCH");
http.addRequestProperty("Accept", "application/json;odata.metadata=none");
http.addRequestProperty("Content-Type", "application/json");
http.setRequestProperty("Authorization", "Bearer "+getAuth());
http.setDoOutput(true);
http.setDoInput(true);
send(http.getOutputStream(), i.toJson());
http.connect();
if(http.getResponseCode() == 200) {
String content = read(http.getInputStream());
System.out.println(content);
return true;
}else {
String errorContent = read(http.getErrorStream());
System.out.println("UPDATE ITEM ERROR:"+errorContent);
}
}catch(IOException e) {
System.out.println("UPDATE ITEM (IOException):"+e.getMessage());
}
}
return false;
}
getAuth () возвращает действительный доступтокен.
Я попытался это сделать:
http.setRequestProperty("X-HTTP-Method-Override", "PATCH");
Однако Microsoft, похоже, распознает его только как POST