Rest DELETE API无法通过代码工作,但可以与邮递员/招摇工具一起正常工作

时间:2018-09-20 14:08:47

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

我遇到了一个奇怪的问题,我创建了一个DELETE Rest API,该API可在swagger / Postman中使用,但在尝试通过代码进行操作时却没有。在尝试通过代码时,我得到了正确的状态代码(200)以及响应正文。这意味着API可以很好地执行,但不知何故它不会删除数据。删除API的逻辑只是清除字典(这是一个模拟服务)。下面是我编写的代码,

        var httpWebRequest = (HttpWebRequest)WebRequest.Create(url); //I don't have any parameters to pass with the url
        httpWebRequest.Method = "DELETE";
        httpWebRequest.ContentType = "application/json";

        using (var response = (HttpWebResponse)httpWebRequest.GetResponse())
        using (var stream = response.GetResponseStream())
        using (var reader = new StreamReader(stream))
        {
            return(reader.ReadToEnd(),response.StatusCode);
        }

2 个答案:

答案 0 :(得分:0)

一种可能是POSTMAN中使用的url和代码中使用的url有所不同。如果您的delete方法正在执行且返回的响应为200,则意味着您的delete方法已成功返回值。但是您要删除的内容存在问题,例如用于删除记录的id。例如,如果您使用任何存储库来删除实体,则需要检查传递给该对象的内容。 / p>

您可以在代码中设置断点,以在调用从代码中删除时检查正在使用的ID。

答案 1 :(得分:0)

尝试一下:

        var httpWebRequest = WebRequest.Create(url);
        httpWebRequest.Method = "DELETE";
        httpWebRequest.ContentType = "application/json";

        using (var response = (HttpWebResponse)httpWebRequest.GetResponse())
        using (var stream = response.GetResponseStream())
        using (var reader = new StreamReader(stream))
        {
            return (reader.ReadToEnd(), response.StatusCode);
        }