Upgrade - axis-cgi/firmwaremanagement.cgi #50
-
I am using Python, to perform firmware upgrades but the following code results in a 200 status code and an error of "message": "JSON request is too large." import requests url = "http://192.168.30.14/axis-cgi/firmwaremanagement.cgi?" files = {'file': ('P1468.bin',open('P1468.bin', 'rb'),'application/octet-stream')} response = requests.post(url, auth=auth,headers=headers,data=payload,files=files) Using the firmware status CGI I have no issues but upgrade CGI is not working so well. Thoughts? |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 5 replies
-
Figured it out. Here is the python code that worked. import requests url = "http://192.168.30.14/axis-cgi/firmwaremanagement.cgi?" payload = { files = { fields={'payload': json.dumps(payload)} response = requests.post(url, auth=auth,data=fields,files =[('file',open('P1468.bin', 'rb'))]) print(response.status_code) |
Beta Was this translation helpful? Give feedback.
-
Hello, A) files Argument data type: B) I changed my request using "files =[('file',open('P1468.bin', 'rb'))]" and I get this error: C) files varible is not used in request I can already get Firmware version using 'method':'status' thanks for reading |
Beta Was this translation helpful? Give feedback.
Figured it out. Here is the python code that worked.
import requests
import json
from requests.auth import HTTPDigestAuth
cam_user = 'root'
cam_pass = 'pass'
auth=HTTPDigestAuth(cam_user, cam_pass)
url = "http://192.168.30.14/axis-cgi/firmwaremanagement.cgi?"
payload = {
"apiVersion": "1.3",
"context": "abc",
"method": "upgrade"
}
files = {
'file': [('file.bin',open('P1468.bin', 'rb'),'application/octet-stream')],
'payload': json.dumps(payload)
}
fields={'payload': json.dumps(payload)}
response = requests.post(url, auth=auth,data=fields,files =[('file',open('P1468.bin', 'rb'))])
print(response.status_code)
print(response.text)