python循環(huán)接收http請求數(shù)據(jù)方式
python循環(huán)接收http請求數(shù)據(jù)
最近做一個項(xiàng)目需要測試http請求,大量密集的http請求測試,網(wǎng)上只找到了postman這種client工具,沒有發(fā)現(xiàn)http server工具,于是想手寫一個。
聽聞python快捷,網(wǎng)上找了一個,但是只能接收一次數(shù)據(jù),于是改動了一下,測試了一下效果還不錯,這里記錄一下。
# coding:utf-8
#環(huán)境:python2.7
import socket
from multiprocessing import Process
if __name__ == "__main__":
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(("", 8000))
server_socket.listen(128)
client_socket, client_address = server_socket.accept()
while True:
request_data = client_socket.recv(10240)
print("request data:", request_data)
# 構(gòu)造響應(yīng)數(shù)據(jù)
response_start_line = "HTTP/1.1 200 OK\r\n"
response_headers = "Server: received\r\n"
response_body = "<h1>Python HTTP Test</h1>"
response = response_start_line + response_headers + "\r\n" + response_body
# 向客戶端返回響應(yīng)數(shù)據(jù)
client_socket.send(bytes(response))python獲取http請求報文數(shù)據(jù)
import socket
if __name__ == '__main__':
# 1.創(chuàng)建tcp服務(wù)端套接字
tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2.綁定端口(端口號可以修改)
tcp_server_socket.bind(("", 8989))
# 3.等待接收客戶端的連接請求
service_client_socket, ip_port = tcp_server_socket.accept()
print(ip_port)
# 4.接收客戶端發(fā)送的http請求報文數(shù)據(jù)
recv_fata = service_client_socket.recv(4096)
# 5.顯示原始http請求報文數(shù)據(jù)
print(recv_data)
service_clinent_socket.close()
tcp_server_socket.close()總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python起點(diǎn)網(wǎng)月票榜字體反爬案例
大家好,本篇文章主要講的是python起點(diǎn)網(wǎng)月票榜字體反爬案例,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12
Python中時間類型的JSON數(shù)據(jù)轉(zhuǎn)換
在Python中,處理時間和日期數(shù)據(jù)以及與JSON數(shù)據(jù)的相互轉(zhuǎn)換是常見的任務(wù),本文主要為大家詳細(xì)如何在Python中處理時間類型的JSON數(shù)據(jù)轉(zhuǎn)換,需要的小伙伴可以參考下2024-02-02
pytest用例間參數(shù)傳遞的兩種實(shí)現(xiàn)方式示例
pytest提供了許多運(yùn)行命令以供定制化運(yùn)行某一類測試用例或者某個測試用例等,下面這篇文章主要給大家介紹了關(guān)于pytest用例間參數(shù)傳遞的兩種實(shí)現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-12-12
python wxpython 實(shí)現(xiàn)界面跳轉(zhuǎn)功能
wxpython沒提供界面跳轉(zhuǎn)的方式,所以就需要借助threading模塊,本文給大家分享python wxpython 實(shí)現(xiàn)界面跳轉(zhuǎn)功能,感興趣的朋友跟隨小編一起看看吧2019-12-12
Tornado Web服務(wù)器多進(jìn)程啟動的2個方法
這篇文章主要介紹了Tornado Web服務(wù)器多進(jìn)程啟動的2個方法,Tornado是一個用Ptyhon寫的WEB服務(wù)器,需要的朋友可以參考下2014-08-08
python使用urllib模塊開發(fā)的多線程豆瓣小站mp3下載器
對豆瓣音樂小站頁面html分析出所有mp3(正則匹配)文件url,然后用urllib.urlretrieve中方法直接將文件下載到本地,通過多線程技術(shù)下載2014-01-01
PyTorch?Dataset與DataLoader使用超詳細(xì)講解
用于處理數(shù)據(jù)樣本的代碼可能會變得凌亂且難以維護(hù);理想情況下,我們希望數(shù)據(jù)集代碼與模型訓(xùn)練代碼解耦,以獲得更好的可讀性和模塊化。PyTorch提供的torch.utils.data.DataLoader和torch.utils.data.Dataset允許你使用預(yù)下載的數(shù)據(jù)集或自己制作的數(shù)據(jù)2022-10-10

