python get post模拟请求
1.使用get方式时。url相似例如以下格式:
- &op=bind
GET报问头例如以下:
- &n=asa HTTP/1.1
- Accept: */*
- Accept-Language: zh-cn
- host: localhost
- Content-Type: application/x-www-form-urlencoded
- Content-Length: 12
- Connection:close
2.使用post方式时。POST方法将请求參数封装在HTTP请求数据中,以名称/值的形式出现,能够传输大量数据,可用来传送文件。
POST报文头例如以下:
- POST /sn/index.php HTTP/1.1
- Accept: */*
- Accept-Language: zh-cn
- host: localhost
- Content-Type: application/x-www-form-urlencoded
- Content-Length: 12
- Connection:close
- &n=asa
在http头后边有一空行,空行后边接着发送post数据。空行通知server下面不再有请求头。
3.能够发现的一点是,不管是post还是get方式,他们所传递的数据都要进行url编码
4. url编码是一种浏览器用来打包表单输入的格式。
浏览器从表单中获取全部的name和当中的值 ,将它们以name/value參数编码(移去那些不能传送的字符。将数据排行等等)作为URL的一部分或者分离地发给server。
不管哪种情况,在server端的表单输入格式样子象这样:
theName=Ichabod+Crane&gender=male&status=missing& ;headless=yes
5.URL编码遵循下列规则:
1.每对name/value由&。符分开。
2.每对来自表单的name/value由=符分开。
3.假设用户没有输入值给这个name,那么这个name还是出现,仅仅是无值。
4.不论什么特殊的字符(就是那些不是简单的七位ASCII。如汉字)将以百分符%用十六进制编码,
6.所以。当我们使用get或者post传送数据之前,我们都须要对数据进行url编码。
urllib库提供了一个函数来实现url的编码:
- search=urllib.urlencode({'q':'python'})
输出为:
- 'q=python'
7.ok,如今正式開始python的get和post请求:
- #!/usr/bin/python
- #-*-coding:utf-8-*-
- # 进行表单提交 小项 2008-10-09
- import httplib,urllib; #载入模块
- #定义须要进行发送的数据
- params = urllib.urlencode({'cat_id':'6',
- 'news_title':'标题-Test39875',
- 'news_author':'Mobedu',
- 'news_ahome':'来源',
- 'tjuser':'carchanging',
- 'news_keyword':'|',
- 'news_content':'測试-Content',
- 'action':'newnew',
- 'MM_insert':'true'});
- #定义一些文件头
- headers = {"Content-Type":"application/x-www-form-urlencoded",
- "Connection":"Keep-Alive","Referer":"http://192.168.1.212/newsadd.asp?
action=newnew"};
- #与站点构建一个连接
- conn = httplib.HTTPConnection("192.168.1.212");
- #開始进行数据提交 同一时候也能够使用get进行
- conn.request(method="POST",url="/newsadd.asp?
action=newnew",body=params,headers=headers);
- #返回处理后的数据
- response = conn.getresponse();
- #推断是否提交成功
- if response.status == 302:
- print "公布成功!^_^!";
- else:
- print "公布失败\^0^/";
- #关闭连接
- conn.close();
另外通过urllib2
url=/game/user/info?id=28
full_url='http://192.168.1.250'+url.
data=urllib2.urlopen(full_url)
Data=data.read()
python get post模拟请求的更多相关文章
- 测试开发Python培训:模拟登录新浪微博-技术篇
测试开发Python培训:模拟登录新浪微博-技术篇 一般一个初学者项目的起点就是登陆功能的自动化,而面临的项目不同实现的技术难度是不一样的,poptest在做测试开发培训中更加关注技术难点,掌握技 ...
- Python爬虫之模拟登录微信wechat
不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一起.既然它这么重要,如果我们可以利用爬虫模拟登录,是不是就意味着我们可以获取这些信息 ...
- Python实现网站模拟登陆
一.实验简介 1.1 基本介绍 本实验中我们将通过分析登陆流程并使用 Python 实现模拟登陆到一个实验提供的网站,在实验过程中将学习并实践 Python 的网络编程,Python 实现模拟登陆的方 ...
- Python爬虫--- 1.1请求库的安装与使用
来说先说爬虫的原理:爬虫本质上是模拟人浏览信息的过程,只不过他通过计算机来达到快速抓取筛选信息的目的所以我们想要写一个爬虫,最基本的就是要将我们需要抓取信息的网页原原本本的抓取下来.这个时候就要用到请 ...
- Python使用selenium模拟点击(一)
本文适合有点Python基础阅读,(没基础的话,相对的比较蒙蔽,争取能让小白能一步一步跟上来) 2019-03-05 14:53:05 前几天由于需要到一个网站进行签到~~听说Python能够模拟请求 ...
- Python+requests 发送简单请求--》获取响应状态--》获取请求响应数据
Python+requests 发送简单请求-->获取响应状态-->获取请求响应数据 1.环境:安装了Python和vscode编译器(Python自带的编译器也ok).fiddler抓包 ...
- Python爬虫-百度模拟登录(二)
上一篇-Python爬虫-百度模拟登录(一) 接上一篇的继续 参数 codestring codestring jxG9506c1811b44e2fd0220153643013f7e6b1898075 ...
- http国际化模拟请求
现在好多系统都有国际化的需求.不同国家的人读到不同的语言数据.那么怎么模拟请求的时候区分是哪个国家的语言信息,代码说明. HttpPost methed = new HttpPost("模拟 ...
- http模拟请求工具
http模拟请求工具: postman(chrome应用) Request Maker(chrome插件) Request Maker(网站:http://www.requestmaker.com/) ...
随机推荐
- Android性能优化第(二)篇---Memory Monitor检测内存泄露
上篇说了一些性能优化的理论部分,主要是回顾一下,有了理论,小平同志又讲了,实践是检验真理的唯一标准,对于内存泄露的问题,现在通过Android Studio自带工具Memory Monitor 检测出 ...
- django中引入json
try: from django.utils import simplejson as jsonexcept: import simplejson as json
- 微信开发token验证失败
遇到token验证时: 1.首先检验是否是80端口或443端口,能否接收到微信的响应信息,如果使用域名,域名要备注,否则接收不到响应信息: 2.其次判断是否能正常echo $echoStr,之前不能有 ...
- C#控件之TreeView
设置属性 treeView1.HideSelection = false; 当控件没有焦点时仍然突出显示 默认显示色为灰色 设置属性 treeView1.DrawMode = TreeViewD ...
- 13.2 处理静态资源【从零开始学Spring Boot】
转载:http://blog.csdn.net/linxingliang/article/details/51637052目录(?)[-] 默认资源映射 自定义资源映射 自定义目录 使用外部目录 通过 ...
- 【秀优越(xie e)】原来出题也能够这么恶心。
通过邪恶的数据范围和数据限制居然能够把一道传统题出成题答2333. 诶毕竟内部互測,题目就不往上贴了. 特殊限制 - - - 题目作废.输出M行"Orz PoPoQQQ" - M ...
- 席位分配问题——惯例Q值法和d'hondt法的MATLAB程序
本篇博文为追忆以前写过的算法系列第四篇 温故知新 本篇于2009年发表于百度博客,当时还没接触CSDN.所以是文学和技术博客混淆,只是这个程序博文訪问量突破2000,有不少网友评论互动.应该 ...
- C#遍历指定路径下的目录
通过指定路径訪问路径下的文件.在C#的开发中主要利用了Directory类和DirectoryInfo类,简要介绍Directory类中的成员:命名空间 System.IO 命名空间 1.Create ...
- Jquery.ajax报parseerror Invalid JSON错误的原因和解决方法:不能解析
(默认: 自动判断 (xml 或 html)) 请求失败时调用时间.参数有以下三个:XMLHttpRequest 对象.错误信息.(可选)捕获的错误对象.如果发生了错误,错误信息(第二个参数)除了得到 ...
- jq:正则表达式
var checkNum = /^[A-Za-z0-9]+$/; 注意没有引号 checkNum.test(这里添加待匹配的字符串); var textNull=/^\s*$/; if(textN ...