我在使用RestHeart时遇到了问题。我想要删除MongoDB服务器中的特定文档,并且我确认以下命令在命令提示符下工作正常。
http delete localhost:8080/mytest/users/56dda76daeb32b0860d909e1 if-match:56dda76daeb32b0860d909e2文档被正确删除,然后我在同一个集合中创建了一个文档,我编写了一些C#代码来删除新创建的文档。
public async void TryDeleteAsync() {
using(var client = new HttpClient()) {
client.BaseAddress = new Uri("http://127.0.0.1:8080/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.IfMatch.Clear();
client.DefaultRequestHeaders.IfMatch.Add(new EntityTagHeaderValue("\"56dda76daeb32b0860d909e5\""));
HttpResponseMessage response = await client.DeleteAsync("/mytest/users/56dda76daeb32b0860d909e4");
if(response.IsSuccessStatusCode) {
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
}文档和ETag id是正确的,但我得到了响应412预条件失败的消息。这段代码有什么问题?
谢谢。
发布于 2016-03-08 15:53:03
错误412 -前置条件失败,表示ETag不匹配。看看下面的代码行:
client.DefaultRequestHeaders.IfMatch.Add(new EntityTagHeaderValue("\"56dda76daeb32b0860d909e5\""));我注意到了传递给EntityTagHeaderValue构造函数的ETag值中的转义引号。尝试使用:
client.DefaultRequestHeaders.IfMatch.Add(new EntityTagHeaderValue("56dda76daeb32b0860d909e5"));https://stackoverflow.com/questions/35850697
复制相似问题