Форум сайта python.su
Доброго времени суток!
Возник вопрос: никак не могу найти доступную для моего понимания информацию по multipart/form-data. google и поиск по форуму выдают достаточно много вариантов, но все примеры для файлов, да и (если честно) все равно не понятно…
Задача: Отправить сообщение на форум.
Запрос имеет вид
Хидеры:
(Request-Line) POST /post.php?tid=29 HTTP/1.1
Host testicforme.mybb.ru
User-Agent Mozilla/5.0 (X11; Linux x86_64; rv:10.0.7) Gecko/20100101 Firefox/10.0.7 Iceweasel/10.0.7
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding gzip, deflate
Connection keep-alive
Referer http://site.ru/viewtopic.php?id=29
Content-Type multipart/form-data; boundary=—————————19508600615668248891146477557
Content-Length 706
пост дата
—————————–19508600615668248891146477557
Content-Disposition: form-data; name=“form_key”
048c1b58b7744cd2f5e709c97e7bd0dbddb14a7c
—————————–19508600615668248891146477557
Content-Disposition: form-data; name=“form_etc”
Netscape.::.5.0 (X11)
—————————–19508600615668248891146477557
Content-Disposition: form-data; name=“form_sent”
1
—————————–19508600615668248891146477557
Content-Disposition: form-data; name=“form_user”
Kappa
—————————–19508600615668248891146477557
Content-Disposition: form-data; name=“req_message”
Test 05
—————————–19508600615668248891146477557–
Офлайн
1) Рандом. requests например использует uuid4().hex
2) Важен, обычно вычисляется автоматически
3) хз поддерживает ли requests это. Как вариант можно скормить ему и files и data, например:
requests.post('http://requestb.in/zofu92zo', data={'foo': 'bar', 'spam': 'eggs'}, files={'':''})
import requests headers = {'Content-Type': 'multipart/form-data; boundary=e86d7460e81c40159b5cbdff0891e025'} data = """ --e86d7460e81c40159b5cbdff0891e025 Content-Disposition: form-data; name="foo" bar --e86d7460e81c40159b5cbdff0891e025 Content-Disposition: form-data; name="spam" eggs --e86d7460e81c40159b5cbdff0891e025--""" resp = requests.post('http://requestb.in/zofu92zo', data=data, headers=headers)
Отредактировано GaiveR (Янв. 17, 2013 23:55:29)
Офлайн