Найти - Пользователи
Полная версия: вопрос по отправке POST
Начало » Network » вопрос по отправке POST
1
aliens
Здравствуйте, вот пробую написать скрипт,отправки на dpast.com через посылку POST запроса.
вот код:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib,httplib

data = {“content”:“import test; print test”,“language”:“Python”,“title”:“”,“poster”:“”,“hold”:“”}
params = urllib.urlencode(data)
headers = {“http-equiv”: “Content-Type”, “ content”: “text/html”,“charset”:“utf8”}
connection = httplib.HTTPConnection(“www.dpaste.com:80”)
connection.request(“POST”, “/”, params)
otvet = connection.getresponse()
print otvet.status, otvet.reason
dataa = otvet.read()
print dataa
connection.close()


В итоег работы скрипта, получаю,вот такое сообщение:
$ python dpaste.py
302 Found
<!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML 2.0//EN”>
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="http://dpaste.com/">here</a>.</p>
</body></html>

Почитав в интернете, ошибка 302-это переход. Собственно.как организовать этот переход в питоне? или я заблуждаюсь
jan2ary
Ловить ошибку 302, при этом otvet.msg укажет, куда переходить.
Пример: http://www.nabble.com/HTML-page-status-t2259778.html
aliens
спасибо
aliens
Исходя из примера выше, дописал свой скрипт, но, он почему то не работает, т.е. он получает ссылку переадресации, но не ту,которую надо. Исследуя, пришел к выводу,что он не отправляет content на сайт, и его перекидывает обратно. вот код, POST посылаю на dpaste.com, подскажите ,что не так? почему не постится то,что посылаю на дпасте

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib,httplib

data = {“content”:'import test; print test',“language”:“Python”,“title”:“”,“poster”:“”,“hold”:“”}
params = urllib.urlencode(data)
print params
headers = {“http-equiv”: “Content-Type”, “ content”: “text/html”,“charset”:“utf8”}
connection = httplib.HTTPConnection(“www.dpaste.com:80”)
connection.request(“POST”, “/”, params)
otvet = connection.getresponse()
result = otvet.msg
print result
jan2ary
Так он перенаправляет на http://dpaste.com/, так вроде и должно быть…
aliens
jan2ary
когда ты отправляешь код ( через его форму) он перенаправляет на страницу вида: www.dpaste.com/номер_добавления… а не просто на dpaste.com. Т.е. получается у меня скрипт ен отправляет данные из content :( или их сервер ен принмаиет
jan2ary
Вот такой код выводит содержание полученной страницы

import urllib

dataAsDictonary={“content”:'import test; print test',“language”:“Python”,“title”:“”,“poster”:“”,“hold”:“”}

url = 'http://dpaste.com/'
f = urllib.urlopen(url, urllib.urlencode(dataAsDictonary))

print f.read()


Как получить урл этой страницы - расскажешь, мне самому интересно :)
aliens
в случае с dpaste я нашел как))
у них там номер есть в коде страницы,вот его надо опарсить. А вообще, поищу функцию в урллиб…
aliens
ха,нашел

f.geturl()

и все окейно ;)
jan2ary
От і добре :-)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB