删除 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,但也没用。
为什么 OneDrive 在这种情况下关心内容类型?
我应该使用什么内容类型?
这里没有关于 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
...
我正在使用此 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,但也没用。
为什么 OneDrive 在这种情况下关心内容类型?
我应该使用什么内容类型?
这里没有关于 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
...