python通過socket實現https請求


 

代碼如下

import socket
import ssl
import random
from locust import HttpUser,task,between

class httpsSoceket():
    '''
    通過socket實現https請求

    '''
    def __init__(self,host,port,uri,cert_pem = None,cert_key = None , ca_cert = None):
        self.host = host.encode()
        self.port = port
        self.uri = uri.encode()
        self.cert_pem = cert_pem
        self.cert_key = cert_key
        self.ca_cert = ca_cert

    #https單向認證
    def https_request(self):
        s = ssl.wrap_socket(socket.socket(socket.AF_INET, socket.SOCK_STREAM))
        s.connect((self.host, self.port))
        s.send(b'GET %s HTTP/1.1\r\nHost: %s\r\nConnection: keep-alive \r\n\r\n'%(self.uri,self.host))
        response = s.recv(1024)
        return response.decode('utf-8')
    #https雙向認證
    def https_muli_request(self):
        s = ssl.wrap_socket(socket.socket(socket.AF_INET, socket.SOCK_STREAM),certfile = self.cert_pem,keyfile = self.cert_key,cert_reqs=ssl.CERT_REQUIRED,ca_certs= self.ca_cert)
        s.connect((self.host,self.port))
        s.send(b'GET %s HTTP/1.1\r\nHost: %s\r\nConnection: keep-alive \r\n\r\n'%(self.uri,self.host))
        response = s.recv(1024)
        return response.decode('utf-8')


class locust_socket(HttpUser):
    serverip = '192.168.9.151'
    port = 443
    getpath = '/'
    cert_pem='user.pem'
    cert_key = 'userkey.key'
    ca_cert = 'ca***.crt'
    a = httpsSoceket(host=serverip,port=port,uri=getpath,cert_pem=cert_pem,cert_key=cert_key,ca_cert=ca_cert)
    def httpsrequest(self):
        pass

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM