FBrowserCEF3Lib浏览器开发技术交流网址

 找回密码
 立即注册
查看: 955|回复: 10

【解决方案】C#创建URL请求

 火 [复制链接]

签到天数: 741 天

[LV.9]以坛为家II

301

主题

650

回帖

1万

积分

超级版主

皇冠皇冠皇冠太阳

积分
18874

活跃会员热心会员永久VIP会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

QQ
发表于 2025-8-18 17:31:58 | 显示全部楼层 |阅读模式
C#源码分享
开发平台: C#
使用框架: FBrowserCEF3
代码类型: 源码
界面截图:

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 mosheng 于 2025-8-22 15:21 编辑

C#创建URL请求

C#创建URL请求



窗口点击事件:

[C#] 查看源码 复制代码
private void btn_click(object sender, EventArgs e)
{
    var btn = sender as Button;
    var browser = BrowserList.data[0];
    if (browser.IsValid && !browser.IsNULL())
    {
        if (btn == button1)//带浏览器环境发送URL请求
        {
            // 创建共享的URLEvent实例处理多个请求
            URLEvent sharedCallback = new URLEvent();
            
            // 订阅数据接收事件
            sharedCallback.DataReceived += (flag, data) =>
            {
                this.Invoke(new Action(() =>
                {
                    Console.WriteLine($"Flag {flag} 接收到数据: {data}");
                    MessageBox.Show($"请求 {flag} 接收到数据:\n{data}", $"请求结果 - Flag {flag}", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }));
            };

            // 订阅请求完成事件
            sharedCallback.RequestCompleted += (flag) =>
            {
                this.Invoke(new Action(() =>
                {
                    Console.WriteLine($"请求 {flag} 已完成");
                }));
            };

            // 使用不同的flag来区分请求:1000, 1001, 1002
            long requestFlag = _globalFlagCounter++;
            string url = "https://ipapi.co/json/";
            Console.WriteLine($"发起请求 Flag {requestFlag} 到 {url}");
            FBroSharpRequest request = new FBroSharpRequest();
            request.SetURL(url);
            request.SetMethod("GET");

            List<FBroSharpStringMap> headers = new List<FBroSharpStringMap>();
            headers.Add(new FBroSharpStringMap
            {
                key = "User-Agent",
                value = "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"
            });
            headers.Add(new FBroSharpStringMap
            {
                key = "accept",
                value = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
            });
            request.SetHeaderMap_Array(headers);

            browser.GetMainFrame().CreateURLRequest(request, sharedCallback, requestFlag);
        }
        if (btn == button2)//纯数据发送URL请求
        {

            // 创建共享的URLEvent实例处理多个请求
            URLEvent sharedCallback = new URLEvent();

            // 订阅数据接收事件
            sharedCallback.DataReceived += (flag, data) =>
            {
                this.Invoke(new Action(() =>
                {
                    Console.WriteLine($"Flag {flag} 接收到数据: {data}");
                    MessageBox.Show($"请求 {flag} 接收到数据:\n{data}", $"请求结果 - Flag {flag}", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }));
            };

            // 订阅请求完成事件
            sharedCallback.RequestCompleted += (flag) =>
            {
                this.Invoke(new Action(() =>
                {
                    Console.WriteLine($"请求 {flag} 已完成");
                }));
            };

            // 使用不同的flag来区分请求:1000, 1001, 1002
            long dataFlag = _globalFlagCounter++;
            string url = "https://ipapi.co/json/";
            Console.WriteLine($"发起请求 Flag {dataFlag} 到 {url}");
            IFBroSharpRequest request = new FBroSharpRequest();
            request.SetURL(url);
            request.SetMethod("GET");

            List<FBroSharpStringMap> headers = new List<FBroSharpStringMap>();
            headers.Add(new FBroSharpStringMap
            {
                key = "User-Agent",
                value = "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"
            });
            headers.Add(new FBroSharpStringMap
            {
                key = "accept",
                value = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
            });
            request.SetHeaderMap_Array(headers);

            FBroSharpURLRequest.Create(request, default, sharedCallback, dataFlag);
        }
    }
    else
    {
        MessageBox.Show("请先创建浏览器环境");
    }
}


URL事件回调代码:

游客,如果您要查看本帖隐藏内容请回复

签到天数: 11 天

[LV.3]偶尔看看II

0

主题

19

回帖

109

积分

初级会员LV2

月亮月亮星星星星

积分
109
发表于 前天 11:40 | 显示全部楼层
路过,看看撒情况

签到天数: 451 天

[LV.9]以坛为家II

0

主题

446

回帖

4477

积分

高级会员LV2

皇冠月亮月亮星星星星

积分
4477
发表于 前天 00:59 | 显示全部楼层

签到天数: 416 天

[LV.9]以坛为家II

0

主题

434

回帖

4150

积分

高级会员LV2

皇冠月亮月亮星星星星

积分
4150
发表于 2026-10-24 06:27:17 | 显示全部楼层
路过,看看,支持下

签到天数: 12 天

[LV.3]偶尔看看II

0

主题

18

回帖

112

积分

初级会员LV2

月亮月亮星星星星

积分
112
发表于 2026-10-23 09:10:30 | 显示全部楼层

签到天数: 408 天

[LV.9]以坛为家II

0

主题

428

回帖

4154

积分

高级会员LV2

皇冠月亮月亮星星星星

积分
4154
发表于 2026-10-23 05:25:49 | 显示全部楼层

签到天数: 250 天

[LV.8]以坛为家I

0

主题

251

回帖

2543

积分

高级会员LV1

皇冠月亮星星

积分
2543
发表于 2026-10-22 15:04:00 | 显示全部楼层
来看看,支持下

签到天数: 474 天

[LV.9]以坛为家II

0

主题

482

回帖

4691

积分

高级会员LV2

皇冠月亮月亮星星星星

积分
4691
发表于 2026-10-20 09:50:23 | 显示全部楼层
必须支持一下

签到天数: 422 天

[LV.9]以坛为家II

0

主题

438

回帖

4175

积分

高级会员LV2

皇冠月亮月亮星星星星

积分
4175
发表于 2026-10-19 20:03:43 | 显示全部楼层
膜拜大神

签到天数: 8 天

[LV.3]偶尔看看II

0

主题

22

回帖

106

积分

初级会员LV2

月亮月亮星星星星

积分
106
发表于 2026-10-17 19:48:50 | 显示全部楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们 在线手册 视频教程 赞助支持 CEF官网 易语言官网 火山开发官网
拒绝任何人以任何形式在本网站发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表本网站立场!

网址帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!

Archiver| 手机版| 小黑屋| 联系QQ:283987887 劰载中...

Powered by Discuz! X5.0 GMT+8, 2026-11-1 14:14 , Processed in 0.031669 second(s), 14 queries , Redis On.

 川公网安备51090302000262 蜀ICP备2023034329号
快速回复 返回顶部 返回列表