SLL error during requesting to axis camera

Viewed 16

I want to make an http request to axis camera in order to change some parameters of camera automatically. I wrote a simple PyQT GUI and used it to run a simple code.

In this code, I use a post request to send the parameter I mentioned earlier and other authorization things to access the camera.

from PyQt5 import QtCore, QtGui, QtWidgets
import requests
from requests.auth import HTTPBasicAuth
from requests_toolbelt import user_agent

class Ui_CameraSetttings(object):
    def setupUi(self, CameraSetttings):
        CameraSetttings.setObjectName("CameraSetttings")
        CameraSetttings.resize(663, 508)
        font = QtGui.QFont()
        font.setFamily("Century Schoolbook L")
        CameraSetttings.setFont(font)
        self.Lname = QtWidgets.QLabel(CameraSetttings)
        self.Lname.setGeometry(QtCore.QRect(20, 20, 151, 17))
        self.Lname.setObjectName("Lname")
        self.LIP = QtWidgets.QLabel(CameraSetttings)
        self.LIP.setGeometry(QtCore.QRect(20, 70, 151, 17))
        self.LIP.setObjectName("LIP")
        self.CameraName = QtWidgets.QLineEdit(CameraSetttings)
        self.CameraName.setGeometry(QtCore.QRect(150, 20, 113, 25))
        self.CameraName.setText("")
        self.CameraName.setObjectName("CameraName")
        self.CameraIP = QtWidgets.QLineEdit(CameraSetttings)
        self.CameraIP.setGeometry(QtCore.QRect(150, 70, 113, 25))
        self.CameraIP.setText("")
        self.CameraIP.setObjectName("CameraIP")
        self.LIR = QtWidgets.QLabel(CameraSetttings)
        self.LIR.setGeometry(QtCore.QRect(20, 120, 151, 17))
        self.LIR.setObjectName("LIR")
        self.comboBox = QtWidgets.QComboBox(CameraSetttings)
        self.comboBox.setGeometry(QtCore.QRect(150, 120, 86, 25))
        self.comboBox.setObjectName("comboBox")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.pushButton = QtWidgets.QPushButton(CameraSetttings)
        self.pushButton.setGeometry(QtCore.QRect(530, 440, 121, 51))
        self.pushButton.setObjectName("pushButton")
        self.pushButton.clicked.connect(self.onClicked)
        self.retranslateUi(CameraSetttings)
        QtCore.QMetaObject.connectSlotsByName(CameraSetttings)

    def retranslateUi(self, CameraSetttings):
        _translate = QtCore.QCoreApplication.translate
        CameraSetttings.setWindowTitle(_translate("CameraSetttings", "Dialog"))
        self.Lname.setText(_translate("CameraSetttings", "Camera Name"))
        self.LIP.setText(_translate("CameraSetttings", "Camera IP"))
        self.LIR.setText(_translate("CameraSetttings", "Camera IR"))
        self.comboBox.setItemText(0, _translate("CameraSetttings", "auto"))
        self.comboBox.setItemText(1, _translate("CameraSetttings", "no"))
        self.comboBox.setItemText(2, _translate("CameraSetttings", "yes"))
        self.pushButton.setText(_translate("CameraSetttings", "Apply Settings"))

    def onClicked(self):
        username = 'root'
        password = 'root'
        IP = '192.168.42.128'
        URL ='https://{}:{}@{}/axis-cgi/'.format(username, password, IP)
        header = {'Authorization':'MIICcTCCAZqgAwIBAgIEYBneCTANBgkqhkiG9w0BAQsFADA9MR8wHQYDVQQKDBZBeGlzIENvbW11bmljYXRpb25zIEFCMRowGAYDVQQDDBFheGlzLWFjY2M4ZTlhMmZjZDAeFw0xNzAxMDEwMDAwMDBaFw0zODAxMTkwMzE0MDdaMD0xHzAdBgNVBAoMFkF4aXMgQ29tbXVuaWNhdGlvbnMgQUIxGjAYBgNVBAMMEWF4aXMtYWNjYzhlOWEyZmNkMIHfMA0GCSqGSIb3DQEBAQUAA4HNADCByQKBwQDkXIMmYnjPboVTAr/KtnT5//icrz5YWgOB/ZjSZ05EP7qVvdSPDBEOAGh+FNASKBZHgwdt+A1YDGE8ZwkulUdn2Bs91eIpexPGkOuLIXRZeVL3/UgXhKV8zG3SgFCFJQA+ddvS8zwTpFY3xQrTxHwblF6OXli2j9nHs/1kq6aSuSM97Zqh6Vm5gRjGfNUe01FzKkGAi1+fCxlVsPsYNZtpyUDd+HKxpev7x07wP2EFGALYWSv2Y9+AgcR48a/MNxMCAwEAATANBgkqhkiG9w0BAQsFAAOBwQDc/2LfibXnSVJ6Nj9fyNe2+Oet5xqSyNOLg6fCj/Lq2TrqFlromkO/XKbPuGHPycsq/AlzT2xgvRCeEPrmC+f88LF5VSPndUU9JjjH3GUKCHw3qydxxQtEdzlE16RCpPt4T74AcJQls+gJ2w8Jh5vhOtrtv6bIAw3WRuObGw0OKYp7mpz2T3lEdPWvPcTVveMhN+O+kthDAv3SB/M/qkKCWg1dmHnieu2ywcuTUb68Qcf88OaosqqOBkJfG3nkzO0='}
        r = requests.post(url = URL+'param.cgi?action=list&ImageSource.I0.DayNight.IrCutFilter',headers=header)
        print("1")
        
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    CameraSetttings = QtWidgets.QDialog()
    ui = Ui_CameraSetttings()
    ui.setupUi(CameraSetttings)
    CameraSetttings.show()
    sys.exit(app.exec_())

But it gets an error about certificate verify failure as shown below. I tried many ways to send Certificate (PEM format) but none of them worked. Where is the problem?

Traceback (most recent call last):
  File "/home/user/Desktop/python/projects/CameraSettingUI/UI.py", line 70, in onClicked
    r = requests.post(url = URL+'param.cgi?action=list&ImageSource.I0.DayNight.IrCutFilter',headers=header)
  File "/home/user/.local/lib/python3.6/site-packages/requests/api.py", line 119, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/requests/api.py", line 61, in request
    return session.request(method=method, url=url, **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/requests/sessions.py", line 530, in request
    resp = self.send(prep, **send_kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/requests/sessions.py", line 643, in send
    r = adapter.send(request, **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/requests/adapters.py", line 514, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='192.168.42.128', port=443): Max retries exceeded with url: /axis-cgi/param.cgi?action=list&ImageSource.I0.DayNight.IrCutFilter (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'),))
0 Answers
Related