【问题标题】:jsoup 403 error. Simple webpage works finejsoup 403 错误。简单的网页工作正常
【发布时间】: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。

标签: java php android jsoup


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    来自JonasCz的帮助想法:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多