导航:首页 > 编程语言 > python实现http请求

python实现http请求

发布时间:2022-06-26 21:17:18

Ⅰ 如何用python写一个http post请求

import urllib2
import urllib

#定义一个要提交的数据数组(字典)
data = {}
data['username'] = 'zgx030030'
data['password'] = '123456'

#定义post的地址
url = 'http://www.test.com/post/'
post_data = urllib.urlencode(data)

#提交,发送数据
req = urllib2.urlopen(url, post_data)

#获取提交后返回的信息
content = req.read()
以上。

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

这个写法还是比较多的,比如 :

一、application/x-www-form-urlencoded
import urllib

url="http://www.example.com"
body_value={"package":"com.tencent.lian","version_code":"66"}
body_value=urllib.urlencode(body_value)
request=urllib2.Request(url,body_value)
request.add_header(keys,headers[keys])
result=urllib2.urlopen(request).read()

二、multipart/form-data
需要利用python的poster模块,安装poster:pip install poster
代码:

fromposter.encodeimportmultipart_encode
fromposter.streaminghttpimportregister_openers
url="http://www.example.com"
body_value={"package":"com.tencent.lian","version_code":"66"}
register_openers()
datagen,re_headers=multipart_encode(body_value)
request=urllib2.Request(url,datagen,re_headers)
#如果有请求头数据,则添加请求头
request.add_header(keys,headers[keys])
result=urllib2.urlopen(request).read()

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

python发送post和get请求
get请求:
使用get方式时,请求数据直接放在url中。
方法一、
importurllib
importurllib2
url="http://192.168.81.16/cgi-bin/python_test/test.py?ServiceCode=aaaa"
req=urllib2.Request(url)
printreq
res_data=urllib2.urlopen(req)
res=res_data.read()
printres
方法二、
importhttplib
url="http://192.168.81.16/cgi-bin/python_test/test.py?ServiceCode=aaaa"
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="http://192.168.81.16/cgi-bin/python_test/test.py"
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="http://192.168.81.16/cgi-bin/python_test/test.py"
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立即发送http请求参数

首先安装requests:

pipinstallrequests

(附requests说明:https://github.com/requests/requests)

然后使用python:

importrequests
resp=requests.post('url',{a:1,b:2})
print(resp.content)

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

HTTP 协议规定 POST 提交的数据必须放在消息主体(entity-body)中,但协议并没有规定数据必须使用什么编码方式。常见的四种编码方式如下:
1、application/x-www-form-urlencoded
这应该是最常见的 POST 提交数据的方式了。浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。请求类似于下面这样(无关的请求头在本文中都省略掉了):
POST HTTP/1.1 Content-Type:
application/x-www-form-urlencoded;charset=utf-8
title=test&sub%5B%5D=1&sub%5B%5D=2&sub%5B%5D=3

2、multipart/form-data
这又是一个常见的 POST 数据提交的方式。我们使用表单上传文件时,必须让 form 的 enctyped 等于这个值,下面是示例
POST HTTP/1.1
Content-Type:multipart/form-data; boundary=----
------
Content-Disposition: form-data; name="text"
title
------
Content-Disposition: form-data; name="file"; filename="chrome.png"
Content-Type: image/png
PNG ... content of chrome.png ...
--------

3、application/json
application/json 这个 Content-Type 作为响应头大家肯定不陌生。实际上,现在越来越多的人把它作为请求头,用来告诉服务端消息主体是序列化后的 JSON 字符串。由于 JSON 规范的流行,除了低版本 IE 之外的各大浏览器都原生支持 JSON.stringify,服务端语言也都有处理 JSON 的函数,使用 JSON 不会遇上什么麻烦。
4、text/xml
它是一种使用 HTTP 作为传输协议,XML 作为编码方式的远程调用规范。
那么Python在调用外部http请求时,post请求怎么传请求体呢?说实话楼主只实践过【1、application/x-www-form-urlencoded】【2、multipart/form-data 】和【3、application/json】
一、application/x-www-form-urlencoded
import urllib

url = ""
body_value = {"package": "com.tencent.lian","version_code": "66" }
body_value = urllib.urlencode(body_value)
request = urllib2.Request(url, body_value)
request.add_header(keys, headers[keys])
result = urllib2.urlopen(request ).read()

二、multipart/form-data
需要利用python的poster模块,安装poster:pip install poster
代码:
from poster.encode import multipart_encode
from poster.streaminghttp import register_openers

url = ""
body_value = {"package": "com.tencent.lian","version_code": "66" }
register_openers()
datagen, re_headers = multipart_encode(body_value)
request = urllib2.Request(url, datagen, re_headers)
# 如果有请求头数据,则添加请求头
request .add_header(keys, headers[keys])
result = urllib2.urlopen(request ).read()

二、application/json
import json

url = ""
body_value = {"package": "com.tencent.lian","version_code": "66" }
register_openers()
body_value = json.JSONEncoder().encode(body_value)
request = urllib2.Request(url, body_value)
request .add_header(keys, headers[keys])
result = urllib2.urlopen(request ).read()

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

http.client包就实现了相应操作的,具体你可以看python的官方教程,下面是我从里面截取的POST示例:

>>>importhttp.client,urllib.parse
>>>params=urllib.parse.urlencode({'@number':12524,'@type':'issue','@action':'show'})
>>>headers={"Content-type":"application/x-www-form-urlencoded",
..."Accept":"text/plain"}
>>>conn=http.client.HTTPConnection("bugs.python.org")
>>>conn.request("POST","",params,headers)
>>>response=conn.getresponse()
>>>print(response.status,response.reason)
302Found
>>>data=response.read()
>>>data
b'Redirectingto<ahref="http://bugs.python.org/issue12524">http://bugs.python.org/issue12524</a>'
>>>conn.close()

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

importurllib2
importurllib

#定义一个要提交的数据数组(字典)
data={}
data['username']='zgx030030'
data['password']='123456'

#定义post的地址
url='<ahref="<ahref="http://www.test.com/post/'"target="_blank">http://www.test.com/post/'</a>"target="_blank">http://www.test.com/post/'"target="_blank">http://www.test.com/post/'</a></a>
post_data=urllib.urlencode(data)

#提交,发送数据
req=urllib2.urlopen(url,post_data)

#获取提交后返回的信息
content=req.read()

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

importurllib2
importurllib

#定义一个要提交的数据数组(字典)
data={}
data['username']='zgx030030'
data['password']='123456'

#定义post的地址
url='http://www.test.com/post/'
post_data=urllib.urlencode(data)

#提交,发送数据
req=urllib2.urlopen(url,post_data)

#获取提交后返回的信息
content=req.read()
printcontent


如果解决了您的问题请采纳!
如果未解决请继续追问!

阅读全文

与python实现http请求相关的资料

热点内容
支持dsd硬解压声卡 浏览:768
怎么查看u盘加密区 浏览:181
台电加密是什么格式 浏览:155
php论坛版块在哪个文件夹 浏览:442
暗黑的服务器为什么维护 浏览:623
android内存溢出的原因 浏览:18
标志307的压缩比是多少 浏览:636
服务器启动为什么叫三声 浏览:997
追风筝的人英文pdf 浏览:940
解压小熊手机壳 浏览:346
成都市区建成面积算法 浏览:660
智能家居单片机 浏览:97
买男装用什么app好 浏览:855
文件夹合并了怎么拆开 浏览:260
波段副图源码无未来函数 浏览:89
livecn服务器地址 浏览:259
程序员这个工作真的很吃香吗 浏览:847
程序员和数学分析师待遇 浏览:681
压缩气弹簧怎么拆 浏览:325
华为公有云服务器添加虚拟ip 浏览:211