让工具帮你处理头疼的请求参数

故事一:有个小弟在研究某航空网站,提交的参数如下:

有着丰富经验的他写下了如下的代码,却怎么也获取不到数据,头发倒是掉了不少:

data = {
  'request': {"depdate":"2019-09-12","hctype":"DC","orgcity":"SZX","dstcity":"PEK","depdate2":""}
}
r = requests.post(url,data = data)
print (r.text)

一看参数什么的都正确,但就是不知道为什么没有返回正确的数据。

故事二:有位不愿意透露姓名的网友看了我的JS入口篇(一)以后,通过自己的不懈努力,破解出来了那个加密参数,正准备用Python来调用测试一番,确发现那个参数不知道在Python里该怎么提交,都懵了。我估计他以前提交的都是字典类型的参数,现在变成的字符串,就不知道该怎么处理了。

其实不用慌,很轻松就能让你告别脱发的烦恼。

请出我们的大杀器:

https://curl.trillworks.com/
访问这个网站,上面甚至都有教你怎么去使用的教程。我在这里也简单的写一下吧。

下面以故事二为例来看看该怎么做,假设你已经打开了入口(一)中的URL,并输入了账号和密码。

选中参数所在的接口;

单击右键,选择相应的菜单,如图:


image.png

注意:一定要选择 这个命令:
Copy as cURL(bash)
复制后,我们将命令粘贴到这个框内:

image.png

会自动帮你编写Python该怎么调用的示例:


image.png

Python代码入下:

import requests
 
 
headers = {
    'Accept': 'application/json, text/plain, */*',
    'Referer': 'https://m.gojoy.cn/pages/login/index?from=%2Fpages%2Fuser%2Findex',
    'Origin': 'https://m.gojoy.cn',
    'Authorized-Token': '',
    'Private-Platform': 'h5',
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36',
    'Content-Type': 'application/json',
}
 
 
data = 'p57Zp53l.T6J8TROp53lp5chp53lY5YSYgnCYgnCYgnOYG3OY1YOYGpCA9cK706l-ZblYJbK4dblYFcj85ulYK4wcJblYJbl4lblYNIk.FbOYG3OY_uScJbMqZbM4K1MclbM4KuwcGERY5blcG3lP5be'
 
 
response = requests.post('https://gmall.gojoy.cn/user-service/user/login', headers=headers, data=data)

细心的你很快就发现,原来和提交 字典是一样的啊。

那故事一中的参数改怎么提交呢,其实,只需要将参数里面的字典变成字符串即可(当然也是这个网站转换得知的):

data = {
  'request': '{"depdate":"2019-09-12","hctype":"DC","orgcity":"SZX","dstcity":"PEK","depdate2":""}'
}
r = requests.post(url,data = data)
print (r.text)

如果要深知其原理,还得翻看requests的源码,以及了解一些前端知识。

你可能感兴趣的:(让工具帮你处理头疼的请求参数)