当前位置: 首页 > 知识库问答 >
问题:

jsoup 403错误。简单的网页很好用

钱安和
2023-03-14

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

问题是我的应用程序中的此代码曾经有效,但不再有效。所以我假设网站发生了变化。我在同一个应用程序中为其他三个网站使用完全相同的代码,它们运行良好。LOGCAT显示以下错误:

org.jsoup.HttpStatusException:获取URL时出现HTTP错误。status=403, URL=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,deflate

接受语言: en-US, en; q=0.8, en-AU; q=0.6

缓存控制:max-age=0

连接:保持活动状态

内容长度:180

内容类型: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.111Safari /537.36

表格数据

AERO\u Tab\u AERO[0]:KLAX

AERO\u Date\u日期:2016年1月25日

AERO_Date_HEURE: 11:21

bResultat:真

模式更改:完成

AERO\u Duree:96

AERO_CM_REGLE: 1

AERO\u CM\u GPS:2

AERO\u CM\u INFO\u组件:1

共有2个答案

温星华
2023-03-14

JonasCz的帮助想法:

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

陈野
2023-03-14

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

 类似资料:
  • 我试图通过本教程实现简单的登录页面(我使用的是symfony 2.4): http://symfony.com/doc/current/book/security.html 登录页面很好。但当我提交表单时,我出现了以下错误: 我在网上搜索,什么都试过了。我的配置有什么问题? security.yml 路由.yml

  • 我的网页截图 我的视区: 我的CSS: 该网站很适合屏幕宽度达到450px。但是当我更多地降低屏幕尺寸时,网页似乎变得越来越小,而不是实际的屏幕尺寸。 366px下的网页截图

  • 下边的程序在端口8088上启动了一个网页服务器;SimpleServer会处理/test1url使它在浏览器输出hello world。FormServer会处理/test2url:如果url最初由浏览器请求,那么它就是一个GET请求,并且返回一个form常量,包含了简单的input表单,这个表单里有一个文本框和一个提交按钮。当在文本框输入一些东西并点击提交按钮的时候,会发起一个POST请求。Fo

  • 我使用JMeter版在一个使用HTTPS协议的页面上执行负载测试,我得到了503 HTTP响应代码。另一方面,当我在浏览器上输入URL时,页面被加载。使用Chrome浏览器,我可以看到请求的结果: 请求的结果 页面已显示。我的问题是,我正在JMeter脚本上使用HTTP响应代码来评估响应代码。 首先,有谁知道为什么我得到503响应代码,即使我可以看到页面?其次,我该如何克服这个问题来正确完成Jme

  • 本文向大家介绍Python制作简单的网页爬虫,包括了Python制作简单的网页爬虫的使用技巧和注意事项,需要的朋友参考一下 1.准备工作: 工欲善其事必先利其器,因此我们有必要在进行Coding前先配置一个适合我们自己的开发环境,我搭建的开发环境是: 操作系统:Ubuntu 14.04 LTS Python版本:2.7.6 代码编辑器:Sublime Text 3.0 这次的网络爬虫需求背景我打算

  • 我试着从babelify、watchify、browserify转到webpack、webpack服务器和babel。 我记得6个月前,我离开了webpack,因为它让我在尝试使用aws sdk时遇到了类似的问题。 出于某种原因,每次构建时都会出现以下错误: 哈希: 396f0bfb9d565b6f60f0版本: webpack 1.14.0时间: 61ms[0]。/src/index.js0字节