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