我是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);
}
答案 0 :(得分:0)
我猜测你没有控制服务器或它如何响应。如评论204中所述,即使实际上没有删除任何内容,DELETE请求也是典型的正常响应。您想知道响应中是否有任何内容告诉您文件是否已删除。您可以查看HttpResponseMessage.ReasonPhrase,看看它是否有所不同。