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

如何使用Indy的Post()函数提交HTML年月选择表单并获取网站响应

如何用Indy的Post()实现月份选择并提交查询

你的现有代码存在格式错误,POST数据需遵循字段名=值的键值对格式,而非你写的带标签属性的格式。结合页面表单源码,修正后的代码如下:

TIdURI *URI = new TIdURI(address);
TStringList *PostData = new TStringList();

try
{
    // 对应年份下拉框name="years-select",选择2024年
    PostData->Add("years-select=2024");
    // 对应月份下拉框name="months-select",选择03(三月)
    PostData->Add("months-select=03");
    // 对应隐藏字段name="archive-select",值固定为true
    PostData->Add("archive-select=true");
    
    String Response = IdHTTP->Post(URI->URI, PostData);
    // 此处可处理返回的Response结果,比如解析HTML内容
}
__finally
{
    // 释放资源,避免内存泄漏
    delete URI;
    delete PostData;
}

关键说明:

  • 表单每个字段都要以name属性值=选中值的格式添加到TStringList,这是HTTP POST表单数据的标准格式
  • 月份下拉框的value属性为字符串形式(如'03'),直接传03即可,无需额外引号
  • 务必在__finally块中释放动态分配的对象,防止异常导致内存泄漏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 12:15:32