работа с google api на perl

Тема в разделе "Другие языки", создана пользователем finist_nuc, 27 сен 2009.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. finist_nuc

    finist_nuc Постоялец

    Регистр.:
    31 май 2008
    Сообщения:
    57
    Симпатии:
    0
    Народ, не могу понять как все-таки отправить запрос, в документации гугла есть такой пример:
    Меня интересует вопрос, как этот запрос отправить на перле?, точнее как передать xml данные? или я вообще идею недопонял...
    В догонку, откуда взять значение content_length?
     
  2. whiplash

    whiplash Создатель

    Регистр.:
    18 фев 2009
    Сообщения:
    20
    Симпатии:
    0
    как-то так:
    PHP:
    use LWP;
    use URI::Escape;

    my $ua=LWP::UserAgent->new();
    my $client_id = 'b1c4t9sl2159';
    my $authentication_token = 'DXAA...sdb8';
    my $developer_key = 'adf15ee97731bca89da876c...a8dc';
    my $query = qq~<?xml version="1.0"?>
    <entry xmlns="http://www.w3.org/2005/Atom"
    xmlns:media="http://search.yahoo.com/mrss/"
    xmlns:yt="http://gdata.youtube.com/schemas/2007">
    <media:group>
    <media:title type="plain">Bad Wedding Toast</media:title>
    <media:description type="plain">I gave a bad toast at my friend's wedding.</media:description>
    <media:category scheme="http://gdata.youtube.com/schemas/2007/categories.cat">People</media:category>
    <media:keywords>toast, wedding</media:keywords>
    </media:group>
    </entry>~;
    $query = URI::Escape::uri_escape($query);

    my $req = HTTP::Request->new(POST => 'http://gdata.youtube.com/action/GetUploadToken');
    $req->header("Authorization" => "AuthSub token=$authentication_token");
    $req->header("X-GData-Client" => $client_id);
    $req->header("X-GData-Key" => "key=$developer_key");
    $req->content_type('application/atom+xml; charset=UTF-8');
    $req->content($query);
    my $res = $ua->request( $req );
    content_length тебе LWP в данном случае сам посчитает, это размер передаваемой информации (кроме заголовка) в байтах
     
Статус темы:
Закрыта.