You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core下如何自动填充并提交Web表单?

嘿,作为.NET Core新手想要实现Web表单自动填充和提交完全没问题!我给你整理了两种实用方案,针对你提供的两个测试地址,一步步来就能搞定:

核心思路与工具选择

首先得区分表单类型:

  • 静态表单:页面加载后就能看到所有输入字段,用.NET Core自带的HttpClient就能模拟提交,轻量高效。
  • 动态表单:依赖JS渲染字段、做验证,或者需要模拟用户点击操作,这时候用Selenium(浏览器自动化工具)更合适。

方案一:用HttpClient模拟静态表单提交

适合不需要JS交互的场景,步骤很简单:先通过浏览器F12抓包确认表单的提交地址和字段名,再构建请求发送。

针对第一个测试地址(mparivahan.in)的代码示例

using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;

public class FormSubmitHelper
{
    private readonly HttpClient _httpClient;

    public FormSubmitHelper()
    {
        _httpClient = new HttpClient();
        // 模拟浏览器请求头,避免被站点拦截
        _httpClient.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36");
    }

    public async Task SubmitMparivahanForm()
    {
        // 注意:这里的字段名是假设的,你需要用F12查看页面实际的表单字段name/ID
        var formData = new Dictionary<string, string>
        {
            { "regn_no", "MH1R" },
            { "last_four_digits", "5656" }
        };

        var formContent = new FormUrlEncodedContent(formData);
        // 提交地址可能和当前页面URL一致,也可能是另一个接口,需抓包确认
        var response = await _httpClient.PostAsync("https://mparivahan.in/uyt/?pur_cd=102", formContent);

        if (response.IsSuccessStatusCode)
        {
            var result = await response.Content.ReadAsStringAsync();
            Console.WriteLine("表单提交成功!返回内容:" + result);
        }
        else
        {
            Console.WriteLine($"提交失败,状态码:{response.StatusCode}");
        }
    }
}

针对第二个测试地址(filegstrstnow.com)的代码示例

public async Task SubmitGstForm()
{
    // 同样,字段名需要你实际查看页面确认,这里假设是"gstin"
    var formData = new Dictionary<string, string>
    {
        { "gstin", "24AADCS0852Q1Z2" }
    };

    var formContent = new FormUrlEncodedContent(formData);
    var response = await _httpClient.PostAsync("https://www.filegstrstnow.com/searchGSTTaxpayer", formContent);

    if (response.IsSuccessStatusCode)
    {
        var result = await response.Content.ReadAsStringAsync();
        Console.WriteLine("GST表单提交成功!返回内容:" + result);
    }
}

方案二:用Selenium处理动态表单

如果表单依赖JS加载,或者需要模拟点击、处理验证码(额外工具支持),Selenium能完全模拟浏览器操作。

先安装NuGet包

需要安装两个包:

Install-Package Selenium.WebDriver
Install-Package Selenium.WebDriver.ChromeDriver

代码示例(针对两个测试地址)

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;

public class SeleniumFormHandler
{
    public void SubmitMparivahanWithBrowser()
    {
        // 初始化Chrome驱动,确保ChromeDriver版本和你的浏览器版本匹配
        using var driver = new ChromeDriver();
        driver.Navigate().GoToUrl("https://mparivahan.in/uyt/?pur_cd=102");

        // 定位输入框并填充值,用Name/XPath/CSS选择器都可以,以页面实际元素为准
        var regnInput = driver.FindElement(By.Name("regn_no"));
        regnInput.SendKeys("MH1R");

        var lastFourInput = driver.FindElement(By.Name("last_four_digits"));
        lastFourInput.SendKeys("5656");

        // 点击提交按钮
        var submitBtn = driver.FindElement(By.XPath("//button[contains(text(), 'Submit')]"));
        submitBtn.Click();

        // 等待页面加载,查看结果
        Console.WriteLine("提交完成,当前页面标题:" + driver.Title);
    }

    public void SubmitGstWithBrowser()
    {
        using var driver = new ChromeDriver();
        driver.Navigate().GoToUrl("https://www.filegstrstnow.com/searchGSTTaxpayer");

        var gstinInput = driver.FindElement(By.Id("gstin")); // 假设ID是gstin
        gstinInput.SendKeys("24AADCS0852Q1Z2");

        var submitBtn = driver.FindElement(By.CssSelector("button[type='submit']"));
        submitBtn.Click();

        Console.WriteLine("GST表单提交完成,当前页面标题:" + driver.Title);
    }
}

关键注意事项
  1. 确认表单字段名:一定要用浏览器F12查看页面的实际表单元素(Name/ID/XPath),示例里的字段名是假设的,实际可能不同。
  2. 反爬机制处理:有些站点会校验User-Agent、Cookie或验证码,HttpClient需要保持Cookie容器,Selenium可以模拟真实浏览器行为降低拦截概率。
  3. Selenium驱动版本:ChromeDriver版本必须和你的Chrome浏览器版本匹配,否则会报错。

内容的提问来源于stack exchange,提问作者N P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:14:11