Форум сайта python.su
Что я делаю не так ?
# -*- coding: UTF-8 -*-
import socket
req = """
POST /RPC2 HTTP/1.1
Host: ping.blogs.yandex.ru
Content-Type: text/xml
Content-length: 318
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>weblogUpdates.ping</methodName>
<params>
<param>
<value>Лучший подарок — это книга</value>
</param>
<param>
<value>http://clubs.ya.ru/company/rss/posts.xml</value>
</param>
</params>
</methodCall>"""
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('ping.blogs.yandex.ru',80))
sock.send(req)
result = sock.recv(1024)
sock.close()
print result
Офлайн
какая ошибка? Или хотя бы какая версия питона?
Офлайн
Он просто зависает,точнее не зависает,а не заканчивает работу.Видать ждёт ответа от сервера.
py 2.6
Офлайн
убери перенос строки из начала запроса, его не должно быть
Офлайн
и ещё по стандарту между заголовком и телом запроса должна быть пустая строка, и вообще возможно это запрос некоректен
а остальное норм (для малых данных)
Офлайн
Получилось,спасибо!
# -*- coding: UTF-8 -*-
import socket
requ = """<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>weblogUpdates.ping</methodName>
<params>
<param>
<value>Ds</value>
</param>
<param>
<value>http://zr.ru/rss.xml</value>
</param>
</params>
</methodCall>"""
req = u"""POST /RPC2 HTTP/1.1
Host: ping.blogs.yandex.ru
Content-Type: text/xml
Content-length: %s
%s"""%(len(requ),requ)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('ping.blogs.yandex.ru',80))
sock.send(req)
result = sock.recv(1024)
sock.close()
print result
Отредактировано (Фев. 8, 2010 20:40:49)
Офлайн