我一直在尝试创建一个应用程序,在Wizzair api上做一些请求,并发现有这个端点为/Api/search/search
。在浏览器中搜索航班时,此端点根据作为json响应提供的参数返回航班列表。当从邮递员访问相同的端点并复制与请求相同的标头和正文时,我得到一个428
响应。这似乎有点奇怪,因为标题和正文与开发人员工具中的Newtork
选项卡中的内容完全相同。
这里有一个参考URL: https://wizzair.com/#/booking/select-flight/LTN/VIE/2022-07-23/2022-08-05/1/0/0/null
添加的标题是:
Host: be.wizzair.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:101.0) Gecko/20100101 Firefox/101.0
Accept: application/json, text/plain, */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://wizzair.com/
Content-Type: application/json;charset=utf-8
X-RequestVerificationToken: <token>
Content-Length: 254
Origin: https://wizzair.com
Connection: keep-alive
Cookie: <some_cookies>
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-site
TE: trailers
正文添加为raw json:
{"isFlightChange":false,"flightList":[{"departureStation":"LTN","arrivalStation":"VIE","departureDate":"2022-07-24"},{"departureStation":"VIE","arrivalStation":"LTN","departureDate":"2022-08-05"}],"adultCount":1,"childCount":0,"infantCount":0,"wdc":true}
邮差的响应是:
{"sec-cp-challenge": "true","provider":"crypto","branding_url_content":"/_sec/cp_challenge/crypto_message-3-7.htm","chlg_duration":30}
有没有人向我解释为什么在浏览器上有不同的行为与邮差完全相同的请求,如果可能的话,在邮差中复制适当的响应?
不知道它是否仍然相关。但是这个
{"sec-cp-challenge": "true","provider":"crypto","branding_url_content":"/_sec/cp_challenge/crypto_message-3-7.htm","chlg_duration":30}
enter code here
是akamai bot保护的指纹。我敢说,它使用JS来区分真实的浏览器和脚本请求。它存储导致饼干,模糊的每一个可能的方法。好的一面是,您可以从浏览器会话中复制cookie,这样就可以得到几个具有有意义结果的请求。在那之后,akamai开始再次尝试更改cookie,您将不得不重新开始。