ПОЛУЧИТЬ и ПОСТИТЬ в одной сессии в Python - PullRequest
0 голосов
/ 04 сентября 2018

У меня проблема с питоном и проведением одной сессии. Речь идет о каноническом принтере. У меня есть этот скрипт:

import requests
import logging

logging.basicConfig(level=logging.DEBUG)
xml="""payload"""
headers={'Host': '10.10.10.10', 'Connection': 'Keep-Alive', 'Content-Type': 'application/octet-stream', 'Content-Length': '252', 'X-CHMP-Version': '1.1.0'}
headers2={'Host': '10.10.10.10', 'Connection': 'Keep-Alive', 'X-CHMP-Version': '1.1.0'}
with requests.Session() as s:
     s.post('http://10.10.10.10/canon/ij/command2/port1', headers=headers, data=xml)
     s.get('http://10.10.10.10/canon/ij/command2/port1', headers=headers2)

Он основан на документации от canon, но у меня проблема с поддержанием активности, потому что в журналах написано следующее:

martin@MARWIN:~$ python skript.py
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): 10.10.10.10
DEBUG:requests.packages.urllib3.connectionpool:"POST /canon/ij/command2/port1 HTTP/1.1" 200 None
INFO:requests.packages.urllib3.connectionpool:Resetting dropped connection: 10.10.10.10
DEBUG:requests.packages.urllib3.connectionpool:"GET /canon/ij/command2/port1 HTTP/1.1" 409 None

Проблема в том, что соединение сбрасывается перед отправкой GET. Когда я запускаю его, для сброса требуется около 20 секунд, и сразу после сброса устанавливается новое соединение. С wireshark я вижу, что он ждет пакета FIN. Есть идеи, как сохранить связь? Спасибо

...