程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Python 请求:POST 表单数据,某些字段更新但其他字段未更新大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Python 请求:POST 表单数据,某些字段更新但其他字段未更新?

开发过程中遇到Python 请求:POST 表单数据,某些字段更新但其他字段未更新的问题如何解决?下面主要结合日常开发的经验,给出你关于Python 请求:POST 表单数据,某些字段更新但其他字段未更新的解决方法建议,希望对你解决Python 请求:POST 表单数据,某些字段更新但其他字段未更新有所启发或帮助;

我正在尝试将表单数据发布到打印机 Web 界面,我可以成功发布字段,但某些类型的表单数据似乎无法工作/更新。

我的代码:

import sys
import requests

IP='xxx.xxx.xxx.xxx'

PrinterSession = requests.session()

csrfdata = PrinterSession .get('http://xxx.xxx.xxx.xxx/propertIEs/authentication/login.php')
csrftoken = str(csrfdata.content)[str(csrfdata.content).index('CSrftoken')+18:str(csrfdata.content).index('CSrftoken')+146]

login_data ={
    'webUsername' : 'admin','webpassword' : 'xxxx','CSrftoken' : csrftoken,'NextPage' : '/propertIEs/authentication/luIDLogin.php','_fun_function' : 'http_Authenticate_fn','frmaltDomain' : 'default',}

LoginPrinter = PrinterSession.post("http://xxx.xxx.xxx.xxx/userpost/printer.set",data=login_data )

headersSMTP = {
    'Accept': 'text/HTML,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*           /*;q=0.8,application/signed-exchange;v=b3;q=0.9','Accept-EnCoding': 'gzip,deflate,br','Accept-Language': 'en-US,en;q=0.9','Cache-Control': 'max-age=0','Connection': 'keep-alive','Content-Length': '328','Content-Type': 'application/x-www-form-urlencoded','cookie': 'PagetoShow=; statusNumNodes=8; statusSELEcted=n1; frmCompany=; frmIFax=; frmFaxnumber=; frmProtocol=SMB; frmdocumentPath=; frmloginname=Xerox; frmServername=; frmNdsContext=; frmSmbShare=Scans; frmNdsTree=; frmIpv6_Host_1=%3A%3A; frmFirstname=DavID; frmlastname=Fester; frmFrIEndlyname=SMB%20Scan; frmEmail=dawIE180@gmail.com; frmdisplayname=Fester%2C%20DavID; frmServerVolume=Scans; frmIpv4_1_1=12; frmIpv4_1_2=12; frmIpv4_1_3=12; frmIpv4_1_4=12; frmXrxAdd_1=Hn; frmHnAdd_1=asdasdsdasda; propNumNodes=117; phpSESSID=457428a534bf077cc6bb0fff7ee80f7f; propSELEcted=n49; propHIErarchy=001010000010000000000000000; WebTimerPopupID=15','Host': '10.241.24.28','Origin': 'https://10.241.24.28','Referer': 'https://10.241.24.28/protocols/smtp/required.php?from=email_req_smtp','sec-ch-ua': '" Not A;Brand";v="99","Chromium";v="90","Google Chrome";v="90"','sec-ch-ua-mobile': '?0','Sec-Fetch-Dest': 'frame','sec-fetch-mode': 'navigate','sec-fetch-site': 'same-origin','Sec-Fetch-User': '?1','upgrade-insecure-requests': '1','User-Agent': 'Mozilla/5.0 (windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/90.0.4430.85 Safari/537.36',}

cookietoList=headersSMTP['cookie'].split(";")
cookietoList[27]=' phpSESSID='+PrinterSession.cookies.get_Dict()['phpSESSID']
Stringcookie = ";".join(cookietoList)
headersSMTP['cookie']=Stringcookie

postsMTPform = {
    '_fun_function': 'http_Set_Config_Attrib_fn','_fun_function': 'http_CN_Set_fn','_fun_function': 'http_SNMP_Set_SvcMon_fn','NextPage': '/propertIEs/email/required.php','CSrftoken': csrftoken,'POP3_MAILBox_ADDRESS': 'smtp.test.com','connectivity.smtp.server': 'xxx.xxx.xxx.xxx:25',}

postsMTP = PrinterSession.post('http://'+IP+'/dummypost/printer.set',data=postsMTPform,headers=headersSMTp)

通过 Chrome 检查发布请求:

request headers:

Accept: text/HTML,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-EnCoding: gzip,br
Accept-Language: en-US,en;q=0.9
Cache-Control: max-age=0
Connection: keep-alive
Content-Length: 364
Content-Type: application/x-www-form-urlencoded
cookie: phpSESSID=c960f2c4fb2f99c44333e601d3cc6a79; propSELEcted=n1; propNumNodes=117; WebTimerPopupID=2
Host: 10.241.24.28
Origin: https://10.241.24.28
Referer: https://10.241.24.28/protocols/smtp/required.php?from=email_cfg_over
sec-ch-ua: " Not A;Brand";v="99","Google Chrome";v="90"
sec-ch-ua-mobile: ?0
Sec-Fetch-Dest: frame
sec-fetch-mode: navigate
sec-fetch-site: same-origin
Sec-Fetch-User: ?1
upgrade-insecure-requests: 1
User-Agent: Mozilla/5.0 (windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/90.0.4430.93 Safari/537.36


Form Data:

_fun_function: http_Set_Config_Attrib_fn
_fun_function: http_CN_Set_fn
_fun_function: http_SNMP_Set_SvcMon_fn
NextPage: /config_overvIEw/email.php
connectivity.smtp.server: 10.10.10.10:25
POP3_MAILBox_ADDRESS: test@home.com
CSrftoken: eb590d22d4b0c75038816bd82a26e188f9a49941029c42765dd790cb8acd07b4966f5a910f493f2d839cb36d5d0a77a7632f614e06fcd67019c0f95f508d7da1
  

所以 "POP3_MAILBox_ADDRESS: test@home.com" 工作正常,更新打印机中的 SMTP 发件人地址,所有其他字段使用相同的大写和下划线样式键工作正常,但其他字段"connectivity.smtp.server: 10.10.10.10:25" 不起作用,它不会更新打印机中的设置,而且似乎每个使用以句点分隔的小写字母的字段都不起作用.

"POP3_MAILBox_ADDRESS: test@home.com" 即使没有用 post 请求解析标头也能正常工作,我在之后添加了标头但它仍然不起作用。不知道我做错了什么。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的Python 请求:POST 表单数据,某些字段更新但其他字段未更新全部内容,希望文章能够帮你解决Python 请求:POST 表单数据,某些字段更新但其他字段未更新所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。