教你如何用Python模拟http请求(GET,POST)

模拟http请求有什么用呢?

我们现在使用的所有需要使用网络的:软件 应用 app 网站里面的绝大部分功能都是通过http协议来工作的

什么是http协议?

http协议,超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。

需要详细了解http请自行搜索,本文简单说一下http的请求过程

由客户端发送请求,请求为一段文字(请求报文),服务端得到请求中参数,由后端进行处理,然后执行相应的功能,

由服务端返回一段文字(响应报文,也有不返回信息的),客户端拿到报文中的信息,做出相应显示。

我们以某APP用户注册为例

当用户需要注册,填写完成自己的手机号码(此时没有发生请求)

点击获取验证码按钮,此时由客户端(APP)向某个地址发送了一个请求报文,报文中包含了你填写的手机号,如图:

请求中包含了一个phone参数,值为你的手机号码

然后服务端收到你的手机号码,执行了发送短信验证码功能,然后向客户端发送了响应报文,如图:

响应报文中包含了一些参数,服务端拿到这些参数,做出相应显示(例如显示:消息发送成功)

以上就完成了一次http的交互,

根据以上实例我们就可以通过模拟请求报文,传入某人手机号,多次发送请求,实现骚扰手机号主人(短信轰炸机功能)

该如何模拟请求呢?

首先我们要安装requests模块

安装命令

pip install requests

首先分析请求

图中请求方式为post,所以我们要用requests.post(url,headers,data)函数,这个函数需要三个参数,我们对照图片所示

填写

Python程序中

import requests
#导入模块url="http://bbs.zcbxw.com/mag/xxx/xx/......."#自行补全headers={"Host":"bbs.zcbxw.com","xxx":"xxx","xx":"xx"}自行补全data="phone=手机号码&country_code=86"requests.post(url=url,headers=headers,data=data)#将headers与url按照图中所示补全,其他代码不变,运行,就完成了一个请求

原文地址:https://www.cnblogs.com/WXGC-yang/p/9251315.html

时间: 2024-10-07 03:25:47

教你如何用Python模拟http请求(GET,POST)的相关文章

python模拟Get请求保存网易歌曲的url

python模拟Get请求保存网易歌曲的url 作者:vpoet 日期:大约在夏季 #coding:utf-8 import requests import json url = 'http://music.163.com//api/dj/program/byradio?radioId=271002&id=271002&ids=%5B%22271002%22%5D&limit=100&offset=0' headers = { 'Host': 'music.163.com'

以下三种下载方式有什么不同?如何用python模拟下载器下载?

问题始于一个链接https://i1.pixiv.net/img-zip-...这个链接在浏览器打开,会直接下载一个不完整的zip文件 但是,使用下载器下载却是完整文件 而当我尝试使用python下载的时候 from urllib import request import sys request.urlretrieve('https://i1.pixiv.net/img-zip-ugoira/img/2017/04/05/00/24/41/62259492_ugoira600x600.zip'

python模拟http请求2

发现了一个非常好用的第三方module:requests,模拟接口非常简单. 详细了解请移步:http://docs.python-requests.org/en/latest/ 非常不错 #!coding:utf-8    相信这句大家都懂的,不解释 #导入需要的requests import requests #定义请求头 reqheaders={'Content-type':'application/x-www-form-urlencoded',  'Accept':'text/html,

教你如何用Python批量下载自己喜欢听得音乐

前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef 音乐是生活的调剂品,目前很多的音乐只能播放不能下载.生为技术员的我们,怎么甘心呢? 知识点: requests 正则表达式 开发环境: 版 本:anaconda5.2.

三种方法教你如何用PHP模拟post提交数据

php模拟post传值在日常的工作中用到的不是很多,但是在某些特定的场合还是经常用到的. 下面,我整理了三种php模拟post传值的方法,file_get_contents.curl和socket. ? 第一种:file_get_contents来模拟post ? <?php ? function file_get_contents_post($url, $post){ ? $options = array( 'http'=> array( 'method'=>'POST', 'cont

一步一步教你如何用Python操作MySQL

文章来源:http://www.51testing.com/html/84/n-3724984.html 工欲善其事,必先利其器.所以第一步,我们先下载第三方库.在这里,我用到的是pymysql库. 下载库:在命令行输入 pip install pymysql 下载后可检验一下是否成功下载.直接在命令行进入python然后导库即可 C:\Users\June>python Python 3.6.3 |Anaconda, Inc.| (default, Oct 15 2017, 03:27:45)

Python模拟http请求

1 #-*-coding:utf-8-*- 2 import urllib, urllib2 3 url = "http://www.love-sysu.com/cloud" 4 data = { 5 "name":"张小三", 6 "id":"12353032" 7 } 8 para = urllib.urlencode(data) 9 res = urllib2.urlopen(url+'?'+para

浅析HTTP中POST和GET区别并用Python模拟其响应和请求

最近在几周在做手游崩溃信息收集和上传,拿到崩溃信息后,使用的是HTTP的POST方法上传到公司共用的服务器的,因此做简单总结.本文首先简单介绍了HTTP协议,主要说明了POST方法和GET方法的区别:然后用Python实现了 对POST方法和GET方法的响应:最后用Python模拟了POST方法和GET方法的请求. HTTP协议简介 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写,简单来说它是一个应用层的协议,它允许将超文本标记语言(HTML)文档从W

Python数据库访问公共组件及模拟Http请求

前言 最近一段时间除了忙于工作之外,在业余时,迷上了python,对它的跨平台深深的吸引.经过一段时间的自我学习,了解了其基本的语法,便开始自己着手摆弄起来.主要想把以前对接的接口再实现一次,以便于在做中发现问题,解决问题.只看不做,没有实际的操练,永远都是纸上谈兵.在此过程中遇到了许多问题,通过不断查询资料和请教基本完善了功能.现将自我觉得比较重要的部分拿出来和大家一起探讨一下,也顺便自己对此做个记录! 模拟Http请求 在请求别人接口时,我们最常使用的是模拟Http请求.在python中有许