Валерий
Фев. 22, 2010 19:45:23
Подскажите пожалуйста. Мне нужно отправлять POST (HTTP) запрос с устройства поддерживающего Python 2.4.3. Понял что для этого мне нужна библиотека urllib или httplib но где ее найти для версии 2.3.4? Может есть какой-то более простой способ с учетом того что мне нужно только отсылать POST?
С уважением Валерий
Валерий
Фев. 22, 2010 19:47:22
Версия 2.4.3
Ferroman
Фев. 22, 2010 19:53:06
Обе эти библиотеки
присутсвуют в стандартной поставке python 2.4.3
Валерий
Фев. 22, 2010 20:17:54
В стандартной да, у меня устройство с поддержкой Питона, сдесь этих библиотек нет. Есть Socket, вот только я не знаю как с его помощью решить задачу. Можно подгружать библиотеки.
bazooka
Фев. 22, 2010 20:46:40
так если присутствует в стандартной то там и найди эти библиотеки
Валерий
Фев. 22, 2010 23:51:43
Спасибо :)!
Javad
Фев. 23, 2010 05:37:48
недолюбливаю я эту встроенную библитеку.надежней имхо самому небольшую функцию через сокеты за 5 минут написать,ведь язык запросов http очень простой.
Андрей Светлов
Фев. 23, 2010 06:13:54
Та да. Проще некуда!
Заголовки приходилось обрабатывать?
Куки поддерживать?
gzip на лету распаковывать?
chunks склеивать?
По https работать?
Коды ошибок обрабатывать - редирект, например?
Авторизацию поддерживать?
С proxy работать?
Список не окончен…
Примитивный протокол, одним словом!!!
Валерий
Фев. 23, 2010 09:15:40
Если писать самому (мне нужен только POST) что посоветуете прочитать из литературы?
Валерий
Фев. 23, 2010 10:14:33
Импортировал библиотеки, попробовал вот так:
import httplib, urllib
params = urllib.urlencode({'t01': 21, ‘l04’: 200})
headers = {“Content-type”: “application/x-www-form-urlencoded”,“Accept”: “text/plain”}
conn = httplib.HTTPConnection(“192.168.0.101:3000”)
conn.request(“POST”, “reports”, params, headers)
response = conn.getresponse()
print response.status, response.reason
data = response.read()
conn.close()
в итоге ошибка: LookupError: unknown encoding: idna
на строке: conn.request(“POST”, “reports”, params, headers)