Найти - Пользователи
Полная версия: Сокеты
Начало » Python для новичков » Сокеты
1
jartasa
Что я делаю не так ?
# -*- 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
какая ошибка? Или хотя бы какая версия питона?
jartasa
Он просто зависает,точнее не зависает,а не заканчивает работу.Видать ждёт ответа от сервера.
py 2.6
o7412369815963
убери перенос строки из начала запроса, его не должно быть
o7412369815963
и ещё по стандарту между заголовком и телом запроса должна быть пустая строка, и вообще возможно это запрос некоректен
а остальное норм (для малых данных)
jartasa
Получилось,спасибо!
# -*- 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
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