gpt4 book ai didi

java - HttpResponse 仅显示来自 Java 应用程序的 404 错误,而不显示来自网站的 404 错误

转载 作者:行者123 更新时间:2023-12-02 06:19:58 24 4
gpt4 key购买 nike

这很奇怪,因为它像昨天一样工作,但今天停止工作(可能是网站做了一些更改)。我在 Android 应用程序中使用此代码来发布到具有正确参数的 URL。现在,当它开始显示 404 错误时,我尝试了各种帖子“标题”,但仍然不起作用。

如果您转到http://www.indianrail.gov.in/pnr_Enq.html输入例如这个 PNR 号码:2727059219,输入纯文本验证码(是的,我知道。叹气。)然后单击“获取状态”在 Firebug 中观看,您可以清楚地看到参数。当我在我的应用程序中执行几乎完全相同的操作时,它不再起作用了。请注意,验证码是由客户端脚本生成的随机 5 位数字,并且如果用户写入相同的内容则匹配。因此,任何东西,比如“11111”(生成的和输入的)在发送 post 参数时都可以工作。

这是我的代码,直到昨天才起作用。注释的标题是我现在尝试过但仍然不起作用的标题:

        try 
{
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://www.indianrail.gov.in/cgi_bin/inet_pnrstat_cgi.cgi");

post.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0");
post.setHeader("Accept","text/html,application/xhtml+xml,application/xml");
//post.setHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
post.setHeader("Accept-Language", "en-US,en;q=0.5");
post.setHeader("Accept-Encoding", "gzip, deflate");
//post.setHeader("Referer", "http://www.indianrail.gov.in/pnr_Enq.html");
//post.setHeader("Content-Type", "application/x-www-form-urlencoded");
post.setHeader("Connection", "keep-alive");

List<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
urlParameters.add(new BasicNameValuePair("lccp_cap_val", "11111"));
urlParameters.add(new BasicNameValuePair("lccp_capinp_val", "11111"));
urlParameters.add(new BasicNameValuePair("lccp_pnrno1", "2727059219")); //the PNR number taken from app, but hard coded to test
urlParameters.add(new BasicNameValuePair("submit", "Get+Status"));

post.setEntity(new UrlEncodedFormEntity(urlParameters));

HttpResponse response = client.execute(post);
if(response.getStatusLine().getStatusCode() != 200)
throw new Exception("Error " + String.valueOf(response.getStatusLine().getStatusCode())); String result = EntityUtils.toString(response.getEntity());


}
catch (Exception ex)
{
mException = ex;
}

谁能告诉我代码哪里错了?为什么它只能在浏览器中运行?

最佳答案

您使用了错误的端点 URL,其中有多余的字符。

更改您的网址:

http://www.indianrail.gov.in/cgi_bin/inet_pnstat_cgi.cgi

注意删除了“r”inet_pn*r*stat_cgi。

我能够复制 404;更改后的网址即可正常工作 - 不再是 404。

关于java - HttpResponse 仅显示来自 Java 应用程序的 404 错误,而不显示来自网站的 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21097243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com