Я пытаюсь создать суперупрощенное Виртуальное В / Совет, использующий wx/Python. У меня есть следующий код на месте для одного из моих запросов к серверу, где я буду хранить данные:
data = urllib.urlencode({'q': 'Status'})
u = urllib2.urlopen('http://myserver/inout-tracker', data)
for line in u.readlines():
print line
Ничто специальное продолжение там. Проблема, которую я имею, состоит в том, что, на основе того, как я прочитал документы, это должно выполнить Запрос Сообщения, потому что я обеспечил параметр данных, и этого не происходит. У меня есть этот код в индексе для того URL:
if (!isset($_POST['q'])) { die ('No action specified'); }
echo $_POST['q'];
И каждый раз, когда я запускаю свое Приложение Python, я добираюсь, 'Никакое действие не указало' текст, распечатанный к моей консоли. Я собираюсь попытаться реализовать его с помощью Объектов Запроса, поскольку я видел несколько демонстраций, которые включают их, но я задаюсь вопросом, может ли кто-либо помочь мне объяснить, почему я не получаю Запрос Сообщения с этим кодом.Спасибо!
- ОТРЕДАКТИРОВАННЫЙ-
Этот код действительно работает и Сообщения к моей веб-странице правильно:
data = urllib.urlencode({'q': 'Status'})
h = httplib.HTTPConnection('myserver:8080')
headers = {"Content-type": "application/x-www-form-urlencoded",
"Accept": "text/plain"}
h.request('POST', '/inout-tracker/index.php', data, headers)
r = h.getresponse()
print r.read()
Я все еще не уверен, почему urllib2 библиотека не Отправляет, когда я предоставляю параметр данных - мне, документы указывают, что она должна.
u = urllib2.urlopen('http://myserver/inout-tracker', data)
h.request('POST', '/inout-tracker/index.php', data, headers)
Использование пути /inout-tracker
без заключительного /
не приводит к получению index.php
. Вместо этого сервер выдает 302
перенаправление на версию с корявым /
.
Выполнение запроса 302 обычно заставляет клиентов преобразовывать POST в GET-запрос.