删除 OneDrive 上的文件需要什么内容类型?

What Content-Type is needed for DELETEing a file on OneDrive?

我正在使用此 URL 尝试删除文件:

https://apis.live.net/v5.0/file.12ea4b6cbf3ee803.12EA4B6CBF3EE803!151

我正在使用 DELETE 方法。

我从服务器得到的return是:

{
   "error": {
      "code": "request_body_invalid_media_type", 
      "message": "The Content-Type header 'text/plain; charset=UTF-8' isn't expected for this HTTP method."
   }
}

我试过使用application/json,但也没用。

  1. 为什么 OneDrive 在这种情况下关心内容类型?

  2. 我应该使用什么内容类型?

这里没有关于 Content-Type 的信息:

http://msdn.microsoft.com/en-us/library/dn659743.aspx#delete_a_file

Content-Type header 用于说明在请求的 body 中发送的内容类型。对于 DELETE 请求,您不应指定请求 body,因为您不应传输请求。

如果您针对不包含 body 的请求发送了 Content-Type,这可能会导致服务混淆,因为它收到了格式错误的请求,这就是我相信您看到的原因400 错误请求响应,因为 header 在删除场景中无效。

这是我今晚成功发送的请求:

DELETE https://apis.live.net/v5.0/file.8bf6ae9dbc6ca4c.8BF6AE9DBC6CA4C!39763 HTTP/1.1
Accept: */*
Authorization: bearer EwCAAq...BbWPszRgepabcSYljAQ==
Host: apis.live.net

回复:

HTTP/1.1 200 OK
Content-Length: 0
...