TypeError: Невозможно неявно преобразовать объект 'bytes' в str внутри библиотеки pysimplesoap

Я использую Windows 2016 Server с Apache 2.4.34 (дистрибутив Apache Lounge). У меня есть сервис SOAP в Python 3.4, загруженный с библиотекой mod_wsgi. Когда сервер получает запрос, в журнале ошибок Apache отображается следующее сообщение:

mod_wsgi (pid=2600): Exception occurred processing WSGI script 'C:/Apache24/cgi-bin/wstsibio5/wstsibio5.wsgi'.
Traceback (most recent call last):\r
  File "C:\\Python34\\lib\\site-packages\\pysimplesoap\\server.py", line 163, in dispatch\r
    ns = NS_RX.findall(xml)\r
TypeError: can't use a string pattern on a bytes-like object\r
\r
During handling of the above exception, another exception occurred:\r
\r
Traceback (most recent call last):\r
  File "C:\\Python34\\lib\\site-packages\\pysimplesoap\\server.py", line 499, in __call__\r
    return self.handler(environ, start_response)\r
  File "C:\\Python34\\lib\\site-packages\\pysimplesoap\\server.py", line 505, in handler\r
    return self.do_post(environ, start_response)\r
  File "C:\\Python34\\lib\\site-packages\\pysimplesoap\\server.py", line 532, in do_post\r
    response = self.dispatcher.dispatch(request)\r
  File "C:\\Python34\\lib\\site-packages\\pysimplesoap\\server.py", line 211, in dispatch\r
    detail += '\\n\\nXML REQUEST\\n\\n' + xml\r
TypeError: Can't convert 'bytes' object to str implicitly\r

У меня такая же среда работает нормально на другом сервере, но здесь у меня есть проблема, из-за которой я потерял 2 дня. Ошибка не в моем коде, она возникает только тогда, когда запрос поступает на сервер Apache и передает его в код Python.

Это объявление диспетчера SOAP:

ws = SoapDispatcher(
     'my_dispatcher',
     location="http://localhost:" + str(puerto) + "/",
     action="http://localhost:" + str(puerto) + "/",  # SOAPAction
     namespace="http://localhost:" + str(puerto) + "/wstsibio4.wsdl",
     prefix="ns0",
     trace=True,
     pretty=True,
     debug=True,
     ns=True)

И эта функция зарегистрирована. Есть и другие, но они зависят от ответа этого:

ws.register_function('Presente', presente,
                     returns={'Respuesta': SimpleXMLElement},
                     args={'id': int, 'serie': str, 'codigo': int, 'mac': str, 'ip': str,
                           'reg_marc': int, 'huellas': int, 'huellas_nuevas': int, 'huellas_modificadas':int,
                           'huellas_eliminadas':int, 'operacion': int, 'mensaje': str, 'fecha_hora': str})

На всякий случай импорт скрипта:

import os
import yaml
import binascii
import datetime
from pysimplesoap.server import SoapDispatcher, SOAPHandler, WSGISOAPHandler
from pysimplesoap.simplexml import SimpleXMLElement
from http.server import HTTPServer

Пожалуйста помоги. Это то, что я знаю, работает, мне нужно несколько аргументов, прежде чем сказать клиенту, что его сервер является проблемой.

Привет из Эквадора:-D

0 ответов

Другие вопросы по тегам