首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用RestHeart删除HttpClient

使用RestHeart删除HttpClient
EN

Stack Overflow用户
提问于 2016-03-08 02:01:21
回答 1查看 379关注 0票数 1

我在使用RestHeart时遇到了问题。我想要删除MongoDB服务器中的特定文档,并且我确认以下命令在命令提示符下工作正常。

代码语言:javascript
复制
http delete localhost:8080/mytest/users/56dda76daeb32b0860d909e1 if-match:56dda76daeb32b0860d909e2

文档被正确删除,然后我在同一个集合中创建了一个文档,我编写了一些C#代码来删除新创建的文档。

代码语言:javascript
复制
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预条件失败的消息。这段代码有什么问题?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-03-08 15:53:03

错误412 -前置条件失败,表示ETag不匹配。看看下面的代码行:

代码语言:javascript
复制
client.DefaultRequestHeaders.IfMatch.Add(new EntityTagHeaderValue("\"56dda76daeb32b0860d909e5\""));

我注意到了传递给EntityTagHeaderValue构造函数的ETag值中的转义引号。尝试使用:

代码语言:javascript
复制
client.DefaultRequestHeaders.IfMatch.Add(new EntityTagHeaderValue("56dda76daeb32b0860d909e5"));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35850697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档