HTTP-сообщение с Android на Python (Apache Mod_Python)

Я хочу отправить данные HTTP Post из приложения Android в сценарий Python (Apache с Mod_Python). Раньше я тестировал свой Android-клиент и успешно отправлял данные в php-скрипт. Когда я использую форму и отправляю данные в свой скрипт Python, он работает хорошо (загрузка или с приведенным ниже скриптом, предлагающим «Файл не загружен»).

У меня проблемы только тогда, когда я хочу отправить данные из своего приложения для Android в Python.

я получаю сообщение об ошибке

ValueError: для распаковки требуется более 1 значения

Вот мой код Python:

def upload(req):

    sys.stderr = open('/var/www/cv/py/errorlog.txt', 'a')

    try: # Windows needs stdio set for binary mode.
        import msvcrt
        msvcrt.setmode (0, os.O_BINARY) # stdin  = 0
        msvcrt.setmode (1, os.O_BINARY) # stdout = 1
    except ImportError:
        pass

if False:
        # do some stuff, not used
else:
    message = 'No file was uploaded'

sys.stderr.close()
sys.stderr = sys.__stderr__

return message

Мой Android-код для http-сообщения довольно длинный, но отлично работал в других настройках, поэтому я пока его не публикую (могу сделать по запросу). У кого-нибудь есть подсказка, где мне нужно начать поиск ошибки?


person Seb    schedule 01.03.2011    source источник
comment
Это говорит вам, из какой строки исходит ошибка? Потому что ничто из этого не похоже на распаковку значений.   -  person Thomas K    schedule 01.03.2011
comment
Я не вижу полной трассировки в файле ошибок (/var/log/apache2/error.log). Последние строки относятся к importer.py, publisher.py и util.py в mod_python. Могу ли я изменить настройки Apache(?), чтобы увидеть полную трассировку в error.log?   -  person Seb    schedule 01.03.2011
comment
Я не знаю. Если это в mod_python, это говорит о том, что что-то не так с конфигурацией Apache. Я должен добавить, что mod_python, по-видимому, был заменен mod_wsgi - я не знаю, будет ли это работать лучше для вас.   -  person Thomas K    schedule 01.03.2011


Ответы (1)


Я обнаружил ошибку: в своем HTTP-сообщении я использовал «\n» в качестве символа новой строки. PHP был в порядке с этим, даже если он уродлив. Mod_Python требует "\r\n".

person Seb    schedule 01.03.2011