Я пытаюсь создать супер-упрощенную виртуальную плату ввода-вывода, используя wx / Python. У меня есть следующий код для одного из моих запросов к серверу, на котором я буду хранить данные:
data = urllib.urlencode({'q': 'Status'})
u = urllib2.urlopen('http://myserver/inout-tracker', data)
for line in u.readlines():
print line
Ничего особенного там не происходит. У меня проблема в том, что, основываясь на том, как я читаю документы, это должно выполнить запрос Post, потому что я предоставил параметр данных, а этого не происходит. У меня есть этот код в индексе для этого URL:
if (!isset($_POST['q'])) { die ('No action specified'); }
echo $_POST['q'];
И каждый раз, когда я запускаю свое приложение Python, я получаю текст «Не указано действие», напечатанный на моей консоли. Я попытаюсь реализовать его, используя объекты запроса, так как я видел несколько демонстраций, которые включают их, но мне интересно, может ли кто-нибудь помочь мне объяснить, почему я не получаю запрос Post с этим кодом. Спасибо!
- отредактировано -
Этот код работает и правильно отправляет сообщения на мою веб-страницу:
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 не публикует, когда я предоставляю параметр данных - для меня документы указывают, что она должна.