DocumentDB - DELETE 导致 401 错误
DocumentDB - DELETE causes 401 error
当我尝试对 DocumentDB 集合执行 DELETE 动词时,我总是得到 401。 POST for queries/inserts/updates 工作正常,所以我确定我计算授权令牌的代码是正确的。但是我不确定我应该为资源 ID 和资源类型传递什么。
payLoad := LowerCase(Verb) + #10+
LowerCase(resourceType) + #10+
LowerCase(resourceId) + #10+
LowerCase(utc_date) + #10 +
'' + #10; //instead of the "date" header
对于 POST(有效),我使用
"docs" and "dbs/mydb/mycol/licenses"
对于 DELETE,我使用“_self”属性 的值作为要删除的文档的 url。我尝试了几乎所有我能想到的资源类型和资源 ID 的组合:
docs dbs/icUoAA==/colls/icUoAKizCgA=/docs
docs dbs/icUoAA==/colls/icUoAKizCgA=/docs/icUoAKizCgADAAAAAAAAAA==
docs dbs/icUoAA==/colls/icUoAKizCgA=/docs/icUoAKizCgADAAAAAAAAAA==/
docs/icUoAKizCgADAAAAAAAAAA== dbs/icUoAA==/colls/icUoAKizCgA=/docs
docs/icUoAKizCgADAAAAAAAAAA== dbs/icUoAA==/colls/icUoAKizCgA=/docs/icUoAKizCgADAAAAAAAAAA==
etc.
DELETE 但是总是失败并显示 401。我需要使用不同的东西吗?
谢谢!
您可以向 DocumentDB 发出两种请求。一种基于您定义的 "id" 属性,另一种基于内部资源 ID(“_rid”)。当您使用 "id" 时,您需要使用整个 link 来生成授权令牌,因此删除它看起来像
delete
docs
dbs/mydb/colls/mycol/docs/cc0d4caabc714aac976c9d0a2e9243ed
sun, 21 aug 2016 20:00:00
//newline
如果您使用的是内部资源 ID,那么您只需传入要删除的文档的“_rid”,例如
delete
docs
icuoakizcgadaaaaaaaaaa== //lowercase
sun, 21 aug 2016 20:00:00
//newline
可能有助于调试这些的一件事是查看随 401 返回的响应正文。它应该包含一条错误消息,告诉您服务器预期的有效负载。
当我尝试对 DocumentDB 集合执行 DELETE 动词时,我总是得到 401。 POST for queries/inserts/updates 工作正常,所以我确定我计算授权令牌的代码是正确的。但是我不确定我应该为资源 ID 和资源类型传递什么。
payLoad := LowerCase(Verb) + #10+
LowerCase(resourceType) + #10+
LowerCase(resourceId) + #10+
LowerCase(utc_date) + #10 +
'' + #10; //instead of the "date" header
对于 POST(有效),我使用
"docs" and "dbs/mydb/mycol/licenses"
对于 DELETE,我使用“_self”属性 的值作为要删除的文档的 url。我尝试了几乎所有我能想到的资源类型和资源 ID 的组合:
docs dbs/icUoAA==/colls/icUoAKizCgA=/docs
docs dbs/icUoAA==/colls/icUoAKizCgA=/docs/icUoAKizCgADAAAAAAAAAA==
docs dbs/icUoAA==/colls/icUoAKizCgA=/docs/icUoAKizCgADAAAAAAAAAA==/
docs/icUoAKizCgADAAAAAAAAAA== dbs/icUoAA==/colls/icUoAKizCgA=/docs
docs/icUoAKizCgADAAAAAAAAAA== dbs/icUoAA==/colls/icUoAKizCgA=/docs/icUoAKizCgADAAAAAAAAAA==
etc.
DELETE 但是总是失败并显示 401。我需要使用不同的东西吗?
谢谢!
您可以向 DocumentDB 发出两种请求。一种基于您定义的 "id" 属性,另一种基于内部资源 ID(“_rid”)。当您使用 "id" 时,您需要使用整个 link 来生成授权令牌,因此删除它看起来像
delete
docs
dbs/mydb/colls/mycol/docs/cc0d4caabc714aac976c9d0a2e9243ed
sun, 21 aug 2016 20:00:00
//newline
如果您使用的是内部资源 ID,那么您只需传入要删除的文档的“_rid”,例如
delete
docs
icuoakizcgadaaaaaaaaaa== //lowercase
sun, 21 aug 2016 20:00:00
//newline
可能有助于调试这些的一件事是查看随 401 返回的响应正文。它应该包含一条错误消息,告诉您服务器预期的有效负载。