【发布时间】:2016-01-25 07:39:21
【问题描述】:
我查看了其他类似的帖子,但没有明显的跳出。如果我错过了,我相信有人会指出我正确的方向!
问题是我的应用程序中的这段代码曾经可以工作,但现在不再可用。所以我假设网站上发生了一些变化。我在同一个应用程序中对其他三个网站使用完全相同的代码,它们运行良好。 LOGCAT 显示以下错误:
org.jsoup.HttpStatusException:获取 URL 的 HTTP 错误。状态=403,网址=http://notamweb.aviation-civile.gouv.fr/Script/IHM/Bul_Aerodrome.php
我制作了这个简单的网页,我可以从本地驱动器启动它并且它可以工作(如果你自己尝试,你需要将日期和时间调整为当前的 UTC 时间):
<form method="post" action="http://notamweb.aviation-civile.gouv.fr/Script/IHM/Bul_Aerodrome.php">
Enter aerodrome ID(s)
<input type="text" name="AERO_Tab_Aero[0]">
<input type="hidden" name="AERO_Date_DATE" value="2016/01/25">
<input type="hidden" name="AERO_Date_HEURE" value="07:12">
<input type="hidden" name="bResultat" value="true">
<input type="hidden" name="ModeAffichage" value="COMPLET">
<input type="hidden" name="AERO_Duree" value="96">
<input type="hidden" name="AERO_CM_REGLE" value="1">
<input type="hidden" name="AERO_CM_GPS" value="2">
<input type="hidden" name="AERO_CM_INFO_COMP" value="1">
<p>
<input type="Submit" value="Get the bulletins">
</p>
</form>
此代码返回错误:
doc = Jsoup.connect("http://notamweb.aviation-civile.gouv.fr/Script/IHM/Bul_Aerodrome.php")
.data("bResultat", "true").data("ModeAffichage", "COMPLET")
.data("AERO_Date_DATE", date).data("AERO_Date_HEURE", time).data("AERO_Duree", "96").data("AERO_CM_REGLE", "1").data("AERO_CM_GPS", "2")
.data("AERO_CM_INFO_COMP", "1").data("AERO_Tab_Aero[0]", params[0].substring(0, params[0].length() - 1))
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36")
.timeout(6000).post();
想法?
编辑#1: 我使用迷你网页时看到的标题是:
请求标头 接受:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
接受编码:gzip,放气
Accept-Language:en-US,en;q=0.8,en-AU;q=0.6
Cache-Control:max-age=0
连接:保持活动
内容长度:180
Content-Type:application/x-www-form-urlencoded
主持人:notamweb.aviation-civile.gouv.fr
来源:空
升级不安全请求:1
用户代理:Mozilla/5.0(Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, 像 Gecko) Chrome/47.0.2526.111 Safari/537.36
形成数据
AERO_Tab_Aero[0]:KLAX
AERO_Date_DATE:2016/01/25
AERO_Date_HEURE:11:21
bResultat:true
ModeAffichage:COMPLET
AERO_Duree:96
AERO_CM_REGLE:1
AERO_CM_GPS:2
AERO_CM_INFO_COMP:1
【问题讨论】:
-
你使用什么类型的授权?
-
Nouman 你的第一个链接说使用用户代理,你会看到我已经在做。第二个链接是关于访问我不想做的目录。
-
解决此问题的一种方法是在您的桌面浏览器中加载页面,并查看开发人员工具的网络选项卡以查看它发送的具体内容,尤其是 cookie 和标头。我的猜测是您需要发送其他/额外的 cookie,或者可能是 Referer 标头,因为网站可能正在检查这一点,然后随您的请求发送相同或相似的标头/cookie。