DeleteAsync返回状态204但不删除该项目

时间:2017-11-27 04:21:53

标签: c# asp.net asp.net-web-api

我是API调用的新手,我编写了Create和Update方法,但是DeleteAsync调用返回状态204但没有删除项目。请求参数类似于"FieldsOfBusiness/13158?Code=%27555%27"。在Postman中用撇号替换%27时它可以正常工作

public async Task<bool> DeleteAsync<T>(object id, NameValueCollection parameters)
    {
        var queryString = ToQueryString(parameters);
        HttpResponseMessage response = await Client.DeleteAsync($"{GetName<T>()}/{id}{queryString}")
            .ConfigureAwait(false);
        response.EnsureSuccessStatusCode();
        var a =  await response.Content.ReadAsAsync<T>();
        return response.IsSuccessStatusCode;
    }     


protected string ToQueryString(NameValueCollection nvc)
    {
        if (nvc == null || nvc.Count < 1)
            return string.Empty;

        var array = (from key in nvc.AllKeys
                     from value in nvc.GetValues(key)
                     select string.Format("{0}={1}", HttpUtility.UrlEncode(key), HttpUtility.UrlEncode(value)))
            .ToArray();
        return "?" + string.Join("&", array);
    }  

1 个答案:

答案 0 :(得分:0)

我猜测你没有控制服务器或它如何响应。如评论204中所述,即使实际上没有删除任何内容,DELETE请求也是典型的正常响应。您想知道响应中是否有任何内容告诉您文件是否已删除。您可以查看HttpResponseMessage.ReasonPhrase,看看它是否有所不同。