技巧分享——让工具帮你处理头疼的请求参数

免责声明:本文如有侵权,还请告知本人删除,谢谢。

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

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


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

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

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

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

请出我们的大杀器:

https://curl.trillworks.com/

  

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

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

  1. 选中参数所在的接口;

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

注意:一定要选择 这个命令:

Copy as cURL(bash)

  

复制后,我们将命令粘贴到这个框内:

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

Python代码入下:


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

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

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


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

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

今天就写到这吧,很水的一篇文章。大佬们轻喷。

文章来源: blog.csdn.net,作者:悦来客栈的老板,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq523176585/article/details/109508036

(完)