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

 找回密码
 立即注册
查看: 708|回复: 1

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

[复制链接]

签到天数: 695 天

[LV.9]以坛为家II

294

主题

606

回帖

1万

积分

超级版主

皇冠皇冠皇冠太阳

积分
17933

活跃会员热心会员永久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事件回调代码:

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

签到天数: 71 天

[LV.6]常住居民II

1

主题

79

回帖

2700

积分

赞助会员

皇冠皇冠太阳太阳月亮月亮

积分
2700

永久VIP会员

发表于 2025-11-27 11:41:37 | 显示全部楼层
学习了大佬学习了大佬学习了大佬
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

Powered by Discuz! X5.0 GMT+8, 2026-9-17 06:59 , Processed in 0.022060 second(s), 14 queries , Redis On.

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