Привет всем.
Пытаюсь разобраться в азах веб-программирования, дошел до curl и решил поиграться с каким-нибудь API. В голову пришел известный сервис ЖЖ, с которым можно общаться по протоколу XML-RPC. В частности,есть такая функция - достать список последних записей у пользователя (с известным паролем, конечно). Называется она сокращенно «getevents». В мануале дан небольшой пример типичной сессии с использованием данной функции (http://www.livejournal.com/doc/server/ljp.csp.xml-rpc.getevents.html).
Недолго думая, я взял указанный в примере код XML, исправил его на свой запрос и воспользовался следующей командой (надо послать POST-запрос; здесь она с пробелами кое-где, в настоящей команде их нет; запрос тупо скопирован из примера, там его читабельность лучше):
curl -d «<?xml version=„1.0“ encoding=„UTF-8“?><methodCal l><methodName>LJ.XMLRPC.getevents</methodName><params><param><value><struct><mem ber><name>username</name><value><string>XXXXXX</string></value></member><membe r><name>password</name><value><string>YYYYYY</string></value></member><member> <name>ver</name><value><int>1</int></value></member><member><name>truncate</name
<value><int>20</int></value></member><member><name>selecttype</name><value><str
ing>lastn</string></value></member><member><name>howmany</name><value><int>2</in t></value></member><member><name>noprops</name><value><boolean>1</boolean></valu e></member><member><name>lineendings</name><value><string>unix</string></value>< /member></struct></value></param></params></methodCall>» -H «Content-Type: text/ xml» http://www.livejournal.com/interface/xmlrpc
На что сервер выдает:
<?xml version=«1.0» encoding=«UTF-8»?><methodResponse><fault><value><struct><mem ber><name>faultString</name><value><string>Application failed during request des erialization: XML declaration not well-formed at line 1, column 14, byte 14 at /usr/lib/perl5/ XML/Parser.pm line 187 </string></value></member><member><name>faultCode</name><value><string>Client</s tring></value></member></struct></value></fault></methodResponse>
Как я ни крутил эту команду, добиться желаемого списка записей в консоли у меня не получается :( Ругается на неправильно оформленный заголовок XML в запросе (?). Но оформлен вроде правильно... Если кто-то пробовал, подскажите, в чем тут дело может быть, а то я отчаялся.
---
Еще вопрос к знатокам: правильно ли я понимаю, что с помощью curl, в принципе, можно пообщаться с любым сервисом и постить видео, скажем, на YouTube? Похоже, большинство скриптов использует curl/libcurl для подобных целей?