You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#访问摄像头登录接口报错:连接超时无响应问题求助

解决摄像头HTTP连接超时问题

问题代码

using System;
using System.Net;

namespace confsiera1
{
    public partial class Form1 : Form
    {
        string url = "http://xxx.xxx.xxx.xxx/login?user=userlogin&password=pass";
        public Form1()
        {
            InitializeComponent();
            GetHtpp();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        public void GetHtpp() 
        {
            WebRequest oRequest = WebRequest.Create(url);
            WebResponse oResponse = oRequest.GetResponse();

            Console.Write(oResponse);

            Console.Read();
        }
    }
}

错误信息

System.Net.WebException: 'A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

排查与解决步骤

  • 确认网络连通性
    在命令行执行ping xxx.xxx.xxx.xxx,检查是否能收到摄像头的回复;再用telnet xxx.xxx.xxx.xxx 80(默认HTTP端口)验证端口是否开放。如果不通,先排查网络:确保主机和摄像头在同一局域网,关闭主机防火墙或添加摄像头IP的放行规则,检查摄像头的网络配置是否正确。

  • 验证登录URL合法性
    多数摄像头不会通过URL参数直接传递用户名密码,可能需要用POST请求提交表单,或者参数名称不符(比如用username而非user)。务必查阅摄像头官方API文档,确认登录接口的地址、请求方法(GET/POST)、参数名称和格式。

  • 添加超时设置
    默认WebRequest超时时间较长,手动设置合理超时避免无限等待:

    oRequest.Timeout = 5000; // 设置为5秒超时
    
  • 完善异常捕获与信息输出
    捕获WebException并打印详细错误,方便定位问题:

    public void GetHtpp() 
    {
        try
        {
            WebRequest oRequest = WebRequest.Create(url);
            oRequest.Timeout = 5000;
            using (WebResponse oResponse = oRequest.GetResponse())
            {
                // 读取响应内容而非直接打印对象
                using (var reader = new System.IO.StreamReader(oResponse.GetResponseStream()))
                {
                    Console.Write(reader.ReadToEnd());
                }
            }
        }
        catch (WebException ex)
        {
            Console.WriteLine($"错误详情: {ex.Message}");
            if (ex.Response != null)
            {
                using (var errorResponse = (HttpWebResponse)ex.Response)
                {
                    Console.WriteLine($"响应状态码: {(int)errorResponse.StatusCode} {errorResponse.StatusDescription}");
                }
            }
        }
        Console.Read();
    }
    
  • 检查认证方式
    如果摄像头采用Basic HTTP认证,不需要在URL传参数,而是添加凭证:

    oRequest.Credentials = new NetworkCredential("userlogin", "pass");
    

内容的提问来源于stack exchange,提问作者jhon estrada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 00:10:32