gpt4 book ai didi

c# - HTTP 删除请求

转载 作者:太空狗 更新时间:2023-10-29 19:46:18 25 4
gpt4 key购买 nike

我正尝试从我的代码后面在 C# 中执行 HTTP DELETE,但无法执行此操作。在查看了 WebRequestMethods.Http 类型的成员之后,我什至不确定这是否可行。

这是我的代码:

try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost/NameFiles/00000.txt");
request.Method = "DELETE";
request.ContentType = "application/x-www-form-urlencoded";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

if (response.StatusCode == HttpStatusCode.OK)
{
// some code
}
}
catch (Exception ex)
{
ex.ToString();
}

在我的开发环境中运行它,我得到:“远程服务器返回错误:(401) 未经授权。”

我在服务器上收到了不同的结果,我认为这与 IIS 中的设置有关:“远程服务器返回错误:(501) 未实现。”

此外,正如我在下面对答案的评论中提到的,我可以在同一台服务器上使用 vbscript 从经典的 asp 页面发送 DELETE 请求,并将请求发送到与使用 c# 从我的 aspx 页面发出的请求相同的位置。为什么这些会有所不同?

最佳答案

  1. 您应该删除此处无用的 Content-Type header 。
  2. 检查您是否在使用 IIS,以及您尝试删除的文件/文件夹是否具有删除权限。这些是我能想到的用户:IUSR 或 IUSR_MachineName 帐户。IIS_IUSRS 或 IIS_WPG 组。
  3. 对于 501 错误返回 - 默认情况下不启用 PUT、DELETE、OPTIONS。因此,您需要在 Web 服务器级别启用。

您应该确保配置文件中存在以下配置。您还可以查看其他一些与删除相关的帖子。 (修改以下适合您环境的设置)。

 <handlers>
<remove name="WebDAV" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>

关于c# - HTTP 删除请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3460969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com