mosheng 发表于 2025-8-18 17:31:58

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

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




窗口点击事件:

private void btn_click(object sender, EventArgs e)
{
    var btn = sender as Button;
    var browser = BrowserList.data;
    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事件回调代码:

**** Hidden Message *****

假装自己是NPC 发表于 前天 11:40

路过,看看撒情况

Thea46 发表于 前天 00:59

{:6_341:}{:6_341:}{:6_341:}{:6_341:}{:6_341:}{:6_341:}{:6_341:}

Daniel32 发表于 2026-10-24 06:27:17

路过,看看,支持下

煮雪的人 发表于 2026-10-23 09:10:30

{:6_448:}{:6_448:}{:6_448:}{:6_448:}{:6_448:}{:6_448:}

Sebastian96 发表于 2026-10-23 05:25:49

{:6_472:}{:6_472:}{:6_472:}{:6_472:}{:6_472:}{:6_472:}

岁月悠悠来 发表于 2026-10-22 15:04:00

来看看,支持下

Julian10 发表于 2026-10-20 09:50:23

必须支持一下

Ella17 发表于 2026-10-19 20:03:43

膜拜大神

给云朵续费 发表于 2026-10-17 19:48:50

{:6_479:}{:6_479:}{:6_479:}{:6_479:}{:6_479:}
页: [1] 2
查看完整版本: 【解决方案】C#创建URL请求