为post请求模拟xhr

2024-05-13 15:18:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过python发送一个post请求,但是通过得很糟糕。在

我希望我的代码批准我选择的座位并继续付款。在

我从post请求中获取了这个url、数据和令牌,并在放置了所选的电影院地点时间和座位之后。在

import urllib.parse, urllib.request 

url = "https://tickets.yesplanet.co.il/YPR/SelectSeatPageRes.aspx/SetSelectedSeats?ec=10725013018-246564"


data = urllib.parse.urlencode(dict(
seats = "11,19#11,20#11,21#11,22",
token ="246564#5#1"
))


res = urllib.request.urlopen(url, data.encode("utf8"))


print (res.read())

链接已过期,但结果如下:

会话结束在您完成购买之前,会话似乎已结束。在

指向主站点的链接:https://www.yesplanet.co.il

我如何知道我的请求是否完成?在

有关开发工具的标题和响应选项卡中的说服信息:

响应标头:

^{pr2}$

请求标头:

**Accept:application/json, text/javascript, */*; q=0.01
Accept-Encoding:gzip, deflate, br
Accept-Language:he-IL,he;q=0.9,en-US;q=0.8,en;q=0.7
Connection:keep-alive
Content-Length:44
Content-Type:application/json; charset=UTF-8
Cookie:ASP.NET_SessionId=p4citijvw3vrqxuoekqnlrhw; _ga=GA1.3.525452416.1517275557; _gid=GA1.3.1168599094.1517275557; _gat_tealium_0=1; utag_main=v_id:016144aba503001d7d72fa299b0904072001c06a00868$_sn:1$_ss:0$_st:1517277365866$ses_id:1517275555076%3Bexp-session$_pn:2%3Bexp-session; hfOIKey=CXCFcTD1; SS#246564#5#1=; SS%23246564%235%231=17%2C12%2317%2C13; hfSKey=%7C%7C%7C%7C%7C%7C%7C%7C%7C1072_res%7C10725013018-246564%7C20
Host:tickets.yesplanet.co.il
Origin:https://tickets.yesplanet.co.il
Referer:https://tickets.yesplanet.co.il/YPR/SelectSeatPageRes.aspx?dtticks=636528796178961691&cf=1004&ec=10725013018-246564
User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36
X-Requested-With:XMLHttpRequest**

请求有效载荷

{seats: "16,10#16,11", token: "246564#5#1"}
seats
:
"16,10#16,11"
token
:
"246564#5#1"

以及响应选项卡:

{"d":"{\"ReturnCode\":0,\"Message\":null,\"Redirect\":\"/YPR/OrderFormPageRes.aspx?dtticks=636528796470870119\\u0026cf=1005\\u0026ec=10725013018-246564\",\"Data\":null}"}

Tags: httpstokenurlparseurllibpostiltickets
1条回答
网友
1楼 · 发布于 2024-05-13 15:18:34

cookie头是密钥。当您从xhr(也称为您的浏览器)发送请求时,相关的cookie会自动附加到您的请求中。在

这些cookie通常是如何管理会话的,响应消息表明服务器在您的请求中没有找到有效的会话cookie。在

您需要通过登录或以其他方式开始此会话来“授权”,然后在发送请求之前将该会话cookie插入到请求中。在

重读后,令牌头也很可能不是静态的。我的猜测是,这是为了防止自动请求,因此可能很难规避。在

更新回应OP评论:

使用cookiejar或者阅读urllib文档,然后找出如何提取并插入cookies。在

how to send cookies inside post request

您需要在开发人员工具中研究网站的行为,查看哪个请求触发会话cookie更新,然后在模拟post请求之前模拟该请求。在

你得到了三个答案。把问题标为正确的,如果你还有问题,再贴一个更具体的问题。在

相关问题 更多 >