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

Jsoup调用印度铁路查询POST接口返回404而Postman正常的代码问题排查

问题原因及解决方案

1. 核心错误:请求URL拼写错误

你代码中填写的请求路径为https://enquiry.indianrail.gov.in/mntes/q?,末尾多了一个多余的?,实际正确的接口路径应该是https://enquiry.indianrail.gov.in/mntes/q。
POST请求的表单参数不会拼接在URL路径后,多余的问号会导致服务端将q?识别为请求资源名,匹配不到对应接口就返回404错误。

2. 其他可能存在的问题

  • 缺少请求必要的Cookie:你通过Postman发起请求时,会自动携带此前访问站点生成的Cookie(比如会话IDJSESSIONID),而Jsoup代码中没有预先请求主页获取、携带对应Cookie,可能被服务端的拦截规则拦截。
  • 缺失必要请求头:部分服务端会校验Accept、Accept-Language等请求头,可对照火狐开发者工具抓到的请求头,在Jsoup中补充完整。

修正后的代码示例

// 第一步:先请求主页获取会话Cookie
Connection.Response homeRes = Jsoup.connect("https://enquiry.indianrail.gov.in/mntes/")
        .userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0")
        .method(Connection.Method.GET)
        .execute();

// 第二步:携带Cookie发起POST请求,注意URL末尾没有多余的?
Document doc= Jsoup.connect("https://enquiry.indianrail.gov.in/mntes/q")
        .data("opt","TrainRunning")
        .data("subOpt","FindStationList")
        .data("trainNo",trainNumber)
        .data("jStation","")
        .data("jDate","25-Aug-2021")
        .data("jDateDay","Wed")
        .userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0")
        .referrer("https://enquiry.indianrail.gov.in/mntes/")
        .cookies(homeRes.cookies()) // 携带从主页拿到的Cookie
        .header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
        .ignoreHttpErrors(true)
        .post();
System.out.println(doc.text());

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:18:03