jartasa
Фев. 8, 2010 19:41:28
Что я делаю не так ?
# -*- 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
Zubchick
Фев. 8, 2010 19:44:41
какая ошибка? Или хотя бы какая версия питона?
jartasa
Фев. 8, 2010 20:27:07
Он просто зависает,точнее не зависает,а не заканчивает работу.Видать ждёт ответа от сервера.
py 2.6
o7412369815963
Фев. 8, 2010 20:29:34
убери перенос строки из начала запроса, его не должно быть
o7412369815963
Фев. 8, 2010 20:31:37
и ещё по стандарту между заголовком и телом запроса должна быть пустая строка, и вообще возможно это запрос некоректен
а остальное норм (для малых данных)
jartasa
Фев. 8, 2010 20:35:22
Получилось,спасибо!
# -*- 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