创建OneDrive API上载会话时发生400错误

创建OneDrive API上载会话时发生400错误,api,microsoft-graph-api,onedrive,microsoft-graph-sdks,Api,Microsoft Graph Api,Onedrive,Microsoft Graph Sdks,创建上载会话以将大型文件上载到oneDrive 下面是请求地址 请求主体 { "item": { "@odata.type": "microsoft.graph.driveItemUploadableProperties", "@microsoft.graph.conflictBehavior": "rename", "name": "largefile.da

创建上载会话以将大型文件上载到oneDrive

下面是请求地址

请求主体

  {
 "item": {
"@odata.type": "microsoft.graph.driveItemUploadableProperties",
"@microsoft.graph.conflictBehavior": "rename",
"name": "largefile.dat"
 }
}
出现无效的请求错误。怎么了?我看了教程并进行了测试

POST/drive/root://{item path}:/createUploadSession 内容类型:application/json

{
"item": {
"@odata.type": "microsoft.graph.driveItemUploadableProperties",
"@microsoft.graph.conflictBehavior": "rename",
"name": "largefile.dat"
}
}


正如Shiva在对该问题的评论中所建议的,问题在于
@odata.type
的值对于这种情况是不正确的。一般来说,您不应该提供它,因为模式是强类型的,因此可以在没有任何客户端驱动的提示的情况下导出适当的值。

正如Shiva在对该问题的评论中所建议的,问题是
@odata.type
的值对于这种情况是不正确的。一般来说,您不应该提供它,因为模式是强类型的,因此可以在没有任何客户端驱动提示的情况下派生适当的值。

响应
400
应该包含一个JSON正文,其中包含失败的详细信息-您有示例吗?@Brad{“error”:{“code”:“invalidRequest”,“message”:“无效请求”,“内部错误”:{“日期”:“2020-10-15T04:24:49”,“请求id”:“2733aaad-cb81-4762-acb5-CC069B44DB2”,“客户端请求id”:“3cd178ab-3315-c047-cab8-20b1c8166ec4”}}请删除odata.type属性并尝试一下。它对我很有效。
400
响应应该包括一个JSON正文,其中包含失败的详细信息-您有示例吗?@Brad{“error”:{“code”:“invalidRequest”,“message”:“Invalid request”,“innerError”:{“date”:“2020-10-15T04:24:49”,“请求id”:“2733aaad-cb81-4762-acb5-cc069b44ddb2”,“客户端请求id”:“3cd178ab-3315-c047-cab8-20b1c8166ec4”}}}}}请删除odata.type属性并尝试一下。它适用于me.var jObject=jObject.FromObject(new{item=newdictionary{{{{{@microsoft.graph.conflictBehavior”,“rename”},fileSystemInfo=newdictionary{{{{@odata.type”,“microsoft.graph.fileSystemInfo},name=fileName});var toJson=JsonConvert.SerializeObject(jObject);var content=newstringcontent(toJson,Encoding.UTF8,“application/json”);var response=wait_client.PostAsync(“用户/”+upn+“/drive/root:/MailFiles/“+fileName+”:/createUploadSession”,内容);如果按上述方式请求,它将成功运行。但是,如果将文件转换为字节并发送到上载会话,则文件已损坏并上载。var jObject=jObject.FromObject(新{item=new Dictionary{{{@microsoft.graph.conflictBehavior”,“rename”},fileSystemInfo=new Dictionary{{{@odata.type”,“microsoft.graph.fileSystemInfo},name=fileName});var toJson=JsonConvert.SerializeObject(jObject);var content=newstringcontent(toJson,Encoding.UTF8,“application/json”);var response=wait_client.PostAsync(“用户/”+upn+“/drive/root:/MailFiles/“+fileName+”:/createUploadSession”,内容);如果按上述方式请求,它将成功运行。但是,如果将文件转换为字节并发送到上载会话,则该文件将损坏并上载。