當前位置:首頁 » 編程語言 » pythonhttppost

pythonhttppost

發布時間: 2023-09-11 21:27:31

㈠ 用python復制form表單的問題

首先,你需要使用Python的requests庫來實現這個功能,它可以幫助你發送POST請求。
第一步:使用requests庫發送POST請求,獲取form表單信息:
import requests
url = 'http://www.example.com/form'
data = {'name': 'John', 'age': '30'}
r = requests.post(url, data=data)
form_data = r.text
第二步:將form表單信息復制到另一個網店:
url = 'http://www.anothersite.com/form'
r = requests.post(url, data=form_data)

㈡ python的BaseHTTPServer模塊怎樣接收post請求能給出,把接收到的POST數據輸...

#!/usr/bin/python
#encoding=utf-8
'''
基於BaseHTTPServer的http server實現,包括get,post方法,get參數接收,post參數接收。
'''
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
import io,shutil
import urllib
import os, sys

class MyRequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
mpath,margs=urllib.splitquery(self.path) # ?分割
self.do_action(mpath, margs)

def do_POST(self):
mpath,margs=urllib.splitquery(self.path)
datas = self.rfile.read(int(self.headers['content-length']))
self.do_action(mpath, datas)

def do_action(self, path, args):
self.outputtxt(path + args )

def outputtxt(self, content):
#指定返回編碼
enc = "UTF-8"
content = content.encode(enc)
f = io.BytesIO()
f.write(content)
f.seek(0)
self.send_response(200)
self.send_header("Content-type", "text/html; charset=%s" % enc)
self.send_header("Content-Length", str(len(content)))
self.end_headers()
shutil.fileobj(f,self.wfile)

㈢ Python Http 請求

如果要進行客戶端和伺服器端之間的消息傳遞,我們可以使用HTTP協議請求

通過URL網址傳遞信息,可以直接在URL中寫上要傳遞的信息,也可以由表單進行傳遞(表單中的信息會自動轉化為URL地址中的數據,通過URL地址傳遞)

備註:已經取得資源,並將資源添加到響應中的消息體

可以向伺服器提交數據,是一種比較安全的數據傳遞方式,比如在登錄時,經常使用 POST 請求發送數據

請求伺服器存儲一個資源,通常需要制定存儲的位置

請求伺服器刪除一個資源

請求獲取對應的 HTTP 報頭信息

可以獲得當前URL所支持的請求類型

狀態碼:200 OK
表明請求已經成功. 默認情況下成功的請求將會被緩存

不同請求方式對於請求成功的意義如下:
GET:已經取得資源,並將資源添加到響應中的消息體.
HEAD:作為消息體的頭部信息
POST:在消息體中描述此次請求的結果

請求成功對於PUT 和 DELETE 來說並不是200 ok 而是 204 所代表的沒有資源 (或者 201 所代表的當一個資源首次被創建成功

以下是常見狀態碼及含義

㈣ python通過get,post方式發送http請求和接收http響應


本文實例講述了python通過get,post方式發送http請求和接收http響應的方法。姿敏分享給輪敏大家供大家參考。
具體如下:
測試用CGI,名字為test.py,放在apache的cgi-bin目錄下:
#!/usr/bin/python
import cgi
def main():
print Content-type: text/htmln
form = cgi.FieldStorage()
if form.has_key(ServiceCode) and form[ServiceCode].value != :
print h1 Hello,form[ServiceCode].value,/h1
else:
print h1 Error! Please enter first name./h1
main()
python發送post和get請求
get請求:
使用get方式時,請求數據直接放在url中。
方法一、
?
7
8
import urllib
import urllib2
url =
req = urllib2.Request(url)
print req
res_data = urllib2.urlopen(req)
res = res_data.read()
print res
方法二、
?
7
import httplib
url =
conn = httplib.HTTPConnection(192.168.81.16)
conn.request(method=GET,url=url)
response = conn.getresponse()
res= response.read()
print res
post請求:臘冊枝
使用post方式時,數據放在data或者body中,不能放在url中,放在url中將被忽略。
方法一、
import urllib
import urllib2
test_data = {ServiceCode:aaaa,b:bbbbb}
test_data_urlencode = urllib.urlencode(test_data)
requrl =
req = urllib2.Request(url = requrl,data =test_data_urlencode)
print req
res_data = urllib2.urlopen(req)
res = res_data.read()
print res
方法二、
11
import urllib
import httplib
test_data = {ServiceCode:aaaa,b:bbbbb}
test_data_urlencode = urllib.urlencode(test_data)
requrl =
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()
print res
對python中json的使用不清楚,所以臨時使用了urllib.urlencode(test_data)方法;
模塊urllib,urllib2,httplib的區別
httplib實現了http和https的客戶端協議,但是在python中,模塊urllib和urllib2對httplib進行了更上層的封裝。
介紹下例子中用到的函數:
1、HTTPConnection函數
httplib.HTTPConnection(host[,port[,stict[,timeout]]])
這個是構造函數,表示一次與伺服器之間的交互,即請求/響應
host 標識伺服器主機(伺服器IP或域名)
port 默認值是80
strict 模式是False,表示無法解析伺服器返回的狀態行時,是否拋出BadStatusLine異常
例如:
conn = httplib.HTTPConnection(192.168.81.16,80) 與伺服器建立鏈接。
2、HTTPConnection.request(method,url[,body[,header]])函數
這個是向伺服器發送請求
method 請求的方式,一般是post或者get,
例如:
method=POST或method=Get
url 請求的資源,請求的資源(頁面或者CGI,我們這里是CGI)
例如:
url=
或者
url=
body 需要提交到伺服器的數據,可以用json,也可以用上面的格式,json需要調用json模塊
headers 請求的http頭headerdata = {Host:192.168.81.16}
例如:
?
test_data = {ServiceCode:aaaa,b:bbbbb}
test_data_urlencode = urllib.urlencode(test_data)
requrl =
headerdata = {Host:192.168.81.16}
conn = httplib.HTTPConnection(192.168.81.16,80)
conn.request(method=POST,url=requrl,body=test_data_urlencode,headers = headerdata)
conn在使用完畢後,應該關閉,conn.close()
3、HTTPConnection.getresponse()函數
這個是獲取http響應,返回的對象是HTTPResponse的實例。
4、HTTPResponse介紹:
HTTPResponse的屬性如下:
read([amt]) 獲取響應消息體,amt表示從響應流中讀取指定位元組的數據,沒有指定時,將全部數據讀出;
getheader(name[,default]) 獲得響應的header,name是表示頭域名,在沒有頭域名的時候,default用來指定返回值
getheaders() 以列表的形式獲得header
例如:
?
1
2
3
4
5
date=response.getheader(date);
print date
resheader=
resheader=response.getheaders();
print resheader
列形式的響應頭部信息:
?
1
2
3
[(content-length, 295), (accept-ranges, bytes), (server, Apache), (last-modified, Sat, 31 Mar 2012 10:07:02 GMT), (connection, close), (etag, e8744-127-4bc871e4fdd80), (date, Mon, 03 Sep 2012 10:01:47 GMT), (content-type, text/html)]
date=response.getheader(date);
print date
取出響應頭部的date的值。
希望本文所述對大家的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

熱點內容
java文件上傳實例 發布:2025-03-10 23:51:29 瀏覽:192
ftp對象控制 發布:2025-03-10 23:48:06 瀏覽:327
手機配置哪些不能給別人看 發布:2025-03-10 23:47:28 瀏覽:468
通常在哪個目錄存放配置文件信息 發布:2025-03-10 23:42:25 瀏覽:197
ftp伺服器什麼意思 發布:2025-03-10 23:42:17 瀏覽:862
黑魂2腳本 發布:2025-03-10 23:30:45 瀏覽:51
安卓導航手剎設置在哪裡 發布:2025-03-10 23:29:07 瀏覽:33
如何配置一套網站系統 發布:2025-03-10 23:28:53 瀏覽:92
更相見演算法 發布:2025-03-10 23:24:59 瀏覽:293
演算法門 發布:2025-03-10 22:59:58 瀏覽:178