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