代码之家  ›  专栏  ›  技术社区  ›  Vijayanath Viswanathan

REST DELETE API不通过代码工作,但使用Postman/Swagger工作正常

  •  0
  • Vijayanath Viswanathan  · 技术社区  · 7 年前

    我遇到了一个奇怪的问题,我创建了一个从招摇过市/邮递员那里工作的deletesrestapi,但是在尝试代码时却没有。在尝试代码时,我得到了正确的状态代码(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 回复  |  直到 7 年前
        1
  •  0
  •   ashish    7 年前

    有一种可能是,您在邮递员中使用的URL与在代码中使用的URL存在差异。如果您的删除方法正在执行并将响应返回为200,则表示您的删除方法已成功返回值。但您删除的内容存在问题,例如在删除中使用的ID例如,如果您使用任何存储库删除实体,那么您需要检查传递到那里的内容。

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

        2
  •  0
  •   Muheeb    7 年前

    试试这个:

            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);
            }