开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 6371|回复: 6
收起左侧

[C#求助] 怎么在跟访问网站进行一个超时的设置

[复制链接]
结帖率:45% (5/11)
发表于 2022-12-26 10:16:13 | 显示全部楼层 |阅读模式   福建省福州市
5精币
ArrayList targetlist = new ArrayList();
using var client = new HttpClient();
var result = await client.GetAsync("https://www.xxx.com"); // 我想问下这里我访问网站的时候怎么做超时 比如设置最多访问5秒


最佳答案

查看完整内容

4.3之前是这样的 4.3版本是这样的 4.3以后是这样的。 [mw_shl_code=csharp,true]RequestConfig requestCon ...
结帖率:100% (23/23)
发表于 2022-12-26 10:16:14 | 显示全部楼层   云南省德宏傣族景颇族自治州
4.3之前是这样的
[C#] 纯文本查看 复制代码
client.setConnectionTimeout(10000); 
client.setTimeout(10000);

4.3版本是这样的
[C#] 纯文本查看 复制代码
httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,10000);
httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,10000);

4.3以后是这样的。
[C#] 纯文本查看 复制代码
RequestConfig requestConfig =  RequestConfig.custom().setSocketTimeout(10000).setConnectTimeout(10000).build();
httpGet.setConfig(requestConfig);

回复

使用道具 举报

结帖率:95% (84/88)

签到天数: 11 天

发表于 2022-12-26 10:39:55 | 显示全部楼层   美国
精易模块
网页_访问_对象
封装个DLL
或者看源码翻译过去
回复

使用道具 举报

结帖率:100% (3/3)

签到天数: 10 天

发表于 2022-12-26 11:07:48 | 显示全部楼层   湖北省武汉市
要看你用的httpclient的版本
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 12 天

发表于 2022-12-26 11:14:19 | 显示全部楼层   河南省郑州市
回复

使用道具 举报

结帖率:100% (3/3)
发表于 2023-3-7 11:12:51 | 显示全部楼层   辽宁省沈阳市
设置timeout
回复

使用道具 举报

结帖率:100% (13/13)

签到天数: 4 天

发表于 2023-3-10 23:08:04 | 显示全部楼层   江苏省徐州市

[C#] 纯文本查看 复制代码
在C#中,可以使用HttpClient的Timeout属性来设置请求超时时间。例如,在你的代码中,可以使用以下代码将请求超时时间设置为5秒:

using System;
using System.Collections;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        ArrayList targetlist = new ArrayList();
        
        using var client = new HttpClient();
        client.Timeout = TimeSpan.FromSeconds(5);

        try
        {
            var result = await client.GetAsync("https://www.xxx.com");
            result.EnsureSuccessStatusCode();
            
            // 处理响应结果
            // ...
        }
        catch (HttpRequestException ex)
        {
            Console.WriteLine($"请求失败,原因:{ex.Message}");
        }
    }
}
在上面的代码中,首先创建了一个HttpClient实例,并将Timeout属性设置为TimeSpan.FromSeconds(5),表示最多等待5秒钟。然后,使用client.GetAsync方法发送异步GET请求,如果请求成功,可以通过result.EnsureSuccessStatusCode()方法确保响应的状态码为2xx,表示请求成功。如果请求超时或失败,可以捕获HttpRequestException异常进行处理。

需要注意的是,HttpClient的Timeout属性是一个TimeSpan类型的值,可以设置的最大值为Int32.MaxValue毫秒。如果请求超时时间超过这个限制,可能会引发System.ArgumentOutOfRangeException异常。另外,HttpClient的Timeout属性只控制请求的超时时间,不包括DNS解析和连接建立等操作的超时时间,如果需要设置这些超时时间,可以使用HttpClientHandler的相应属性进行设置。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表