c# - 如何从 webclient 获取状态码?

标签 c# .net vb.net webclient

我正在使用 WebClient 类将一些数据发布到 Web 表单。我想获取表单提交的响应状态代码。到目前为止,我已经找到了如何在出现异常时获取状态码

Catch wex As WebException
        If TypeOf wex.Response Is HttpWebResponse Then
          msgbox(DirectCast(wex.Response, HttpWebResponse).StatusCode)
            End If

但是,如果表单提交成功并且没有抛出异常,那么我将不知道状态码(200,301,302,...)

有没有办法在没有抛出异常的情况下获取状态码?

PS:我不喜欢使用httpwebrequest/httpwebresponse

最佳答案

您可以检查错误是否为WebException类型,然后检查响应代码;

if (e.Error.GetType().Name == "WebException")
{
   WebException we = (WebException)e.Error;
   HttpWebResponse response = (System.Net.HttpWebResponse)we.Response;
   if (response.StatusCode==HttpStatusCode.NotFound)
      System.Diagnostics.Debug.WriteLine("Not found!");
}

try
{
    // send request
}
catch (WebException e)
{
    // check e.Status as above etc..
}

关于c# - 如何从 webclient 获取状态码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3574659/

相关文章:

c# - 监视文件的更改

C#:在 .NET 库中,是否有可以查看和打印 RTF 字符串的标准类?

c# - 没有代码隐藏的 ASP.net 页面

c# - ServiceStack:添加 Blazor 支持?

c# - 有没有办法从 .Net 中创建 azure 服务总线命名空间?

asp.net - 什么会导致 Microsoft Jet OLEDB SELECT 错过整个列?

.net - Json.NET - 如何使用自定义解析器序列化类

javascript - 如何在不修改 HTML 内容的情况下加载和解析 HTML

vb.net - 从工具箱中删除/隐藏公共(public)控件

vb.net - 如何使用字符串 "*"或 "\"作为数学运算符?