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 *****

84915659 发表于 2025-11-27 11:41:37

学习了大佬学习了大佬学习了大佬
页: [1]
查看完整版本: 【解决方案】C#创建URL请求