jsoup 403错误。简单的网页工作正常

时间:2016-01-25 07:39:22

标签: java php android jsoup

我看过其他类似的帖子,但没有明显的跳出来。如果我错过了,我相信有人会指出我正确的方向!

问题是我的应用程序中的这段代码曾经工作但不再存在。所以我假设网站上发生了一些变化。我在同一个应用程序中使用与其他三个网站完全相同的代码,它们工作正常。 LOGCAT显示以下错误:

  

org.jsoup.HttpStatusException:HTTP错误提取URL。状态= 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的,应用/ XHTML + xml的,应用/ XML; Q = 0.9,图像/ WEBP, / 的; Q = 0.8

     

Accept-Encoding:gzip,deflate

     

Accept-Language:en-US,en; q = 0.8,en-AU; q = 0.6

     

缓存控制:最大年龄= 0

     

连接:保持活力

     

的Content-Length:180

     

内容类型:应用/ X WWW的窗体-urlencoded

     

主持人:notamweb.aviation-civile.gouv.fr

     

产地:空

     

升级 - 不安全请求:1

     

User-Agent: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年1月25日

     

AERO_Date_HEURE:11:21

     

bResultat:真

     

ModeAffichage:COMPLET

     

AERO_Duree:96

     

AERO_CM_REGLE:1

     

AERO_CM_GPS:2

     

AERO_CM_INFO_COMP:1

2 个答案:

答案 0 :(得分:1)

问题解决了。问题是模拟器时钟错误导致网页拒绝请求。

答案 1 :(得分:0)

JonasCz提供帮助:

  

解决此问题的方法是在桌面浏览器中加载页面,然后查看开发人员工具的网络选项卡,以查看其发送的确切内容,尤其是Cookie和标头。我的猜测是你需要发送其他/额外的cookie,或者可能是Referer标题,因为网站可能正在检查这个,然后在你的请求中发送相同或类似的标题/ cookie。