当前位置:首页 » 编程语言 » postpython

postpython

发布时间: 2022-09-28 09:34:13

python用get还是post好

Python用post好,下面是它们的具体区别:

GET产生一个TCP数据包;POST产生两个TCP数据包。

解释:

对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

也就是说,GET只需要汽车跑一趟就把货送到了,而POST得跑两趟,第一趟,先去和服务器打个招呼“嗨,我等下要送一批货来,你们打开门迎接我”,然后再回头把货送过去。

因为POST需要两步,时间上消耗的要多一点,看起来GET比POST更有效。因此Yahoo团队有推荐用GET替换POST来优化网站性能。但这是一个坑!跳入需谨慎。为什么?

1. GET与POST都有自己的语义,不能随便混用。

2. 据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。

3. 并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

所以从本质上来说,post比get好。

更多Python知识,请关注:Python自学网!!

Ⅱ 如何用Python写一个http post请求

python发送post和get请求
get请求:
使用get方式时,请求数据直接放在url中。
方法一、
importurllib
importurllib2
url="<ahref="http://192.168.81.16/cgi-bin/python_test/test.py?ServiceCode=aaaa""target="_blank">http://192.168.81.16/cgi-bin/python_test/test.py?ServiceCode=aaaa"</a>
req=urllib2.Request(url)
printreq
res_data=urllib2.urlopen(req)
res=res_data.read()
printres
方法二、
importhttplib
url="<ahref="http://192.168.81.16/cgi-bin/python_test/test.py?ServiceCode=aaaa""target="_blank">http://192.168.81.16/cgi-bin/python_test/test.py?ServiceCode=aaaa"</a>
conn=httplib.HTTPConnection("192.168.81.16")
conn.request(method="GET",url=url)
response=conn.getresponse()
res=response.read()
printres
post请求:
使用post方式时,数据放在data或者body中,不能放在url中,放在url中将被忽略。
方法一、
importurllib
importurllib2
test_data={'ServiceCode':'aaaa','b':'bbbbb'}
test_data_urlencode=urllib.urlencode(test_data)
requrl="<ahref="http://192.168.81.16/cgi-bin/python_test/test.py""target="_blank">http://192.168.81.16/cgi-bin/python_test/test.py"</a>
req=urllib2.Request(url=requrl,data=test_data_urlencode)
printreq
res_data=urllib2.urlopen(req)
res=res_data.read()
printres

方法二、
importurllib
importhttplib
test_data={'ServiceCode':'aaaa','b':'bbbbb'}
test_data_urlencode=urllib.urlencode(test_data)
requrl="<ahref="http://192.168.81.16/cgi-bin/python_test/test.py""target="_blank">http://192.168.81.16/cgi-bin/python_test/test.py"</a>
headerdata={"Host":"192.168.81.16"}
conn=httplib.HTTPConnection("192.168.81.16")
conn.request(method="POST",url=requrl,body=test_data_urlencode,headers=headerdata)
response=conn.getresponse()
res=response.read()
printres

Ⅲ python 关于post和get的区别

1.GET是从服务器上获取数据,POST是向服务器传送数据。
2.在客户端,GET方式在通过URL提交数据,数据在URL中可以看到,POST方式,数据放置在HTML——HEADER内提交。
3.对于GET方式,服务器端用Request.QueryString获取变量的值,对于POST方式,服务器端用Request.Form获取提交的数据。

Ⅳ 如何在 Python 中模拟 post 表单来上传文件

在机器上安装了Python的setuptools工具,可以通过下面的命令来安装 poster:

easy_installposter

装完之后,安装下面代码就可以实现post表单上传文件了:

fromposter.encodeimportmultipart_encode
fromposter.streaminghttpimportregister_openers
importurllib2

#在urllib2上注册http流处理句柄
register_openers()

#开始对文件"DSC0001.jpg"的multiart/form-data编码
#"image1"是参数的名字,一般通过HTML中的<input>标签的name参数设置

#headers包含必须的Content-Type和Content-Length
#datagen是一个生成器对象,返回编码过后的参数
datagen,headers=multipart_encode({"image1":open("DSC0001.jpg","rb")})

#创建请求对象(localhost服务器IP地址,5000服务器端口)
request=urllib2.Request("http://localhost:5000/upload_image",datagen,headers)
#实际执行请求并取得返回
printurllib2.urlopen(request).read()

Ⅳ python怎么发送post请求

我使用的的python3.5,代码如下:

fromurllib.parseimporturlencode
fromurllib.requestimporturlopen
defsend_to_server(url,post_data=None):
ifpost_data:
para=urlencode(post_data)
page=urlopen(url,para.encode('utf-8'))#注意这里不encode会报错
else:
page=urlopen(url)
return(page.read().decode('utf-8'))

Ⅵ python 提交post数据求助

这又不知道你的defput_tickets(item_id,username,password,oid,tickets,active函数里面的参数到底是怎么样子的

你把

try:
return_put_tickets(item_id,username,password,oid,tickets,active)
exceptException:
printu'提交错误,重试中....测试版'

这个加个print语句
try:
return_put_tickets(item_id,username,password,oid,tickets,active)
exceptException,e:
printe#这里会打印异常原因
printu'提交错误,重试中....测试版'
或者直接把tryexcept去掉看看报错信息

热点内容
aspnet数据库路径 发布:2024-12-26 11:47:35 浏览:973
皮卡堂怎么找到以前玩过的服务器 发布:2024-12-26 11:45:59 浏览:123
浏览器如何变电脑版安卓 发布:2024-12-26 11:44:36 浏览:178
vivo微信怎么加密码锁 发布:2024-12-26 11:34:14 浏览:403
对蚁群算法 发布:2024-12-26 11:15:53 浏览:807
tiobe编程语言社区 发布:2024-12-26 10:48:11 浏览:424
日立存储微码升级 发布:2024-12-26 10:43:48 浏览:153
如何建立家庭网站服务器 发布:2024-12-26 10:40:46 浏览:186
安卓显示e是什么意思 发布:2024-12-26 10:35:13 浏览:705
电磁炉编程 发布:2024-12-26 10:30:51 浏览:97