waslee 2025-07-13 20:25 采纳率: 0%
浏览 49

如何用c#读取网页接口然后将数据存储至数据库中

通过此页面 http://hot.icfqs.com:7615/site/tdx-pc-hqpage/page-lbtt.html?color=##tdxbk##&bkcolor=##tdxbkcolor##

获取数据接口地址 http://hot.icfqs.com:7615/TQLEX?Entry=CWServ.cfg_fx_lbtt&RI= 如何通过c#读取此接口的数据,并将数据保存至数据库中

img

img

  • 写回答

8条回答 默认 最新

  • 檀越@新空间 2025-07-13 20:26
    关注

    晚上好🌙🌙🌙
    本答案参考通义千问

    要使用C#读取网页接口并存储数据到数据库中,可以按照以下步骤进行操作:


    1. 获取接口地址和请求方式

    你提供的页面是:
    http://hot.icfqs.com:7615/site/tdx-pc-hqpage/page-lbtt.html?color=##tdxbk##&bkcolor=##tdxbkcolor##

    但实际的接口地址是:
    http://hot.icfqs.com:7615/TQLEX?Entry=CWServ.cfg_fx_lbtt&RI=

    注意:该接口可能是一个POST请求GET请求。你需要通过浏览器开发者工具(F12)查看网络请求,确认请求方法、参数和头信息。


    2. 使用C#发送HTTP请求获取数据

    你可以使用 HttpClient 发送 HTTP 请求,并获取响应内容。

    示例代码:

    using System;
    using System.Net.Http;
    using System.Threading.Tasks;
    
    class Program
    {
        static async Task Main(string[] args)
        {
            string url = "http://hot.icfqs.com:7615/TQLEX?Entry=CWServ.cfg_fx_lbtt&RI=";
    
            using (HttpClient client = new HttpClient())
            {
                // 设置请求头(如果需要)
                client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0");
    
                try
                {
                    HttpResponseMessage response = await client.GetAsync(url);
                    response.EnsureSuccessStatusCode(); // 如果状态码不是200-299,则抛出异常
    
                    string responseBody = await response.Content.ReadAsStringAsync();
                    Console.WriteLine("接口返回的数据:\n" + responseBody);
    
                    // 将数据保存至数据库
                    SaveToDatabase(responseBody);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("请求失败:" + ex.Message);
                }
            }
        }
    
        static void SaveToDatabase(string data)
        {
            // 这里替换为你的数据库连接字符串和保存逻辑
            string connectionString = "YourConnectionStringHere";
            string query = "INSERT INTO YourTableName (DataColumn) VALUES (@Data)";
    
            using (var connection = new System.Data.SqlClient.SqlConnection(connectionString))
            {
                var command = new System.Data.SqlClient.SqlCommand(query, connection);
                command.Parameters.AddWithValue("@Data", data);
    
                connection.Open();
                command.ExecuteNonQuery();
            }
        }
    }
    

    注意

    • 请根据实际情况修改 connectionString 和 SQL 查询语句。
    • 如果接口需要 POST 请求,请将 GetAsync 改为 PostAsync,并设置请求体(如 JSON 或表单数据)。

    3. 数据解析与存储

    假设接口返回的是 JSON 格式数据,你可以使用 Newtonsoft.Json(即 Json.NET)来解析数据:

    安装 NuGet 包:

    Install-Package Newtonsoft.Json
    

    示例代码:

    using Newtonsoft.Json;
    using System.Collections.Generic;
    
    public class TqlexData
    {
        public string Field1 { get; set; }
        public int Field2 { get; set; }
        // 根据实际返回数据定义属性
    }
    
    // 在 SaveToDatabase 方法中解析数据
    void SaveToDatabase(string data)
    {
        var tqlexData = JsonConvert.DeserializeObject<TqlexData>(data);
        
        // 存储到数据库
        string connectionString = "YourConnectionStringHere";
        string query = "INSERT INTO YourTableName (Field1, Field2) VALUES (@Field1, @Field2)";
    
        using (var connection = new System.Data.SqlClient.SqlConnection(connectionString))
        {
            var command = new System.Data.SqlClient.SqlCommand(query, connection);
            command.Parameters.AddWithValue("@Field1", tqlexData.Field1);
            command.Parameters.AddWithValue("@Field2", tqlexData.Field2);
    
            connection.Open();
            command.ExecuteNonQuery();
        }
    }
    

    4. 配置数据库

    确保你的数据库已经创建了相应的表结构,例如:

    CREATE TABLE YourTableName (
        Id INT IDENTITY PRIMARY KEY,
        DataColumn NVARCHAR(MAX),
        Field1 NVARCHAR(100),
        Field2 INT
    )
    

    5. 完整流程总结

    1. 确定接口请求方式(GET/POST)和参数;
    2. 使用 HttpClient 发送请求
    3. 解析返回数据(JSON 或其他格式);
    4. 将数据保存到数据库(SQL Server、MySQL 等);
    5. 处理异常和日志记录(可选)。

    6. 常见问题及解决方法

    | 问题 | 解决方案 | |------|----------| | 接口返回错误 | 检查 URL 是否正确,是否需要参数或身份验证 | | 数据无法解析 | 使用 JsonConvert.DeserializeObject 或手动分割字符串 | | 数据库连接失败 | 检查连接字符串、权限、防火墙等 | | 需要登录认证 | 添加 Authorization 头或 Cookie |


    如果你有具体的返回数据格式(如 JSON 结构),我可以帮你进一步优化解析和存储逻辑。欢迎提供更多信息!

    评论

报告相同问题?

问题事件

  • 创建了问题 7月13日