導航:首頁 > 編程語言 > 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請求相關的資料

熱點內容
文件夾合並了怎麼拆開 瀏覽:256
波段副圖源碼無未來函數 瀏覽:84
livecn伺服器地址 瀏覽:255
程序員這個工作真的很吃香嗎 瀏覽:842
程序員和數學分析師待遇 瀏覽:676
壓縮氣彈簧怎麼拆 瀏覽:319
華為公有雲伺服器添加虛擬ip 瀏覽:207
程序員和運營哪個累 瀏覽:22
抖音安卓信息提示音怎麼設置 瀏覽:454
光速虛擬機的共享文件夾 瀏覽:246
程序員培訓機構發的朋友圈真實性 瀏覽:742
天乾地支簡單演算法 瀏覽:299
下載個壓縮文件 瀏覽:298
普通人電腦關機vs程序員關機 瀏覽:628
米酷建站源碼 瀏覽:115
氫氣app怎麼搜搭配 瀏覽:619
pdf綠盟 瀏覽:505
固態硬碟編譯器重建 瀏覽:391
怎樣編輯硬碟文件夾 瀏覽:660
安卓系統如何打開電腦軟體 瀏覽:572