使用以下端点,我们可以更新特定文件的元数据:https://domain.example.com/_api/web/GetFileByServerRelativeUrl(URL)/ListItemAllFields
为什么在成功更新元数据后,API会返回204而不是200.是预期还是有其他方式更新元数据。
答案 0 :(得分:1)
更新后,SharePoint REST API不会返回更新的项目/对象。如果更新请求成功,它仅返回状态代码204。
如果您想获得更新的项目/对象,则必须另外发出GET请求。
df2.select(df2.columns.map(c => testUDF(df1, c)(col(c)).alias(c + "_test")): _*)
def testUDF(df1: DataFrame, cn: String) =
udf((c:String) => {
val t = df1.where(col("fn") === cn)
//somecode
})
答案 1 :(得分:1)
根据Dynamics Web API Documentation,默认情况下更新数据而不返回更新的结果。这就是您获取状态代码204的原因。为了返回数据,您需要在Web API调用中添加prefer:return=representation
标头。添加prefer
标头将返回200的状态代码。
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(Helpers.GetSystemUrl(APIConnector.Application.Dynamics));
client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("OData-MaxVersion", "4.0");
client.DefaultRequestHeaders.Add("OData-Version", "4.0");
client.DefaultRequestHeaders.Add("prefer", "return=representation");
let xhr = new XMLHttpRequest();
xhr.open("PATCH", CONNECTION_URL, true);
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("OData-MaxVersion", "4.0");
xhr.setRequestHeader("OData-Version", "4.0");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("prefer", "return=representation");