AMF-Connection
view release on metacpan or search on metacpan
examples/amfclient.pl view on Meta::CPAN
#!/usr/bin/env perl
# see http://swxformat.org/php/explorer/
use AMF::Connection;
use HTTP::Cookies;
use JSON;
BEGIN
{
no strict 'refs';
# blessed hash object to JSON object
map
{
examples/amfclient.pl view on Meta::CPAN
my $endpoint = 'http://swxformat.org/php/amf.php';
my $service = 'Twitter';
my $method = 'search';
my $client = new AMF::Connection( $endpoint );
$client->setEncoding(3);
#$client->setHTTPProxy('http://127.0.0.1:8888');
#$client->addHeader( 'serviceBrowser', 'true' );
$client->setHTTPCookieJar( HTTP::Cookies->new(file => "/tmp/lwpcookies.txt", autosave => 1, ignore_discard => 1 ) );
my $params = [ "italy" ];
my ($response) = $client->call( $service.'.'.$method, $params );
my $json = JSON->new;
$json->ascii(1);
$json->utf8(1);
$json->pretty(1);
$json->allow_blessed(1);
$json->convert_blessed(1);
examples/get-brightcove-videos-metadata.pl view on Meta::CPAN
my $endpoint = 'http://c.brightcove.com/services/amfgateway';
my $service = 'com.brightcove.templating.TemplatingFacade';
my $method = 'getContentForTemplateInstance';
my $client = new AMF::Connection( $endpoint );
# $client->config( ... ); # LWP::UserAgent extra params (proxy, auth etc... )
#$client->setEncoding(3);
#$client->setHTTPProxy('http://127.0.0.1:8888');
#$client->setHTTPCookieJar( HTTP::Cookies->new(file => "/tmp/lwpcookies.txt", autosave => 1, ignore_discard => 1 ) );
# eg taken from http://link.brightcove.com/services/player/bcpid34762914001?bctid=672454611001
# works only with AMF0 encoding - at least it seems so - because using openamf ?
#
my $player_id = '34762914001';
my $videoId = '672454611001';
my $params = [
$player_id, # param 1 - playerId
{
lib/AMF/Connection.pm view on Meta::CPAN
package AMF::Connection;
use AMF::Connection::Message;
use AMF::Connection::MessageBody;
use AMF::Connection::OutputStream;
use AMF::Connection::InputStream;
use LWP::UserAgent;
use HTTP::Cookies;
#use Data::Dumper; #for debug
use Carp;
use strict;
our $VERSION = '0.32';
our $HASMD5 = 0;
{
lib/AMF/Connection.pm view on Meta::CPAN
}
sub new {
my ($proto, $endpoint) = @_;
my $class = ref($proto) || $proto;
my $self = {
'endpoint' => $endpoint,
'headers' => [],
'http_headers' => {},
'http_cookie_jar' => new HTTP::Cookies(),
'response_counter' => 0,
'encoding' => 0, # default is AMF0 encoding
'ua' => new LWP::UserAgent(),
'append_to_endpoint' => ''
};
$self->{'ua'}->cookie_jar( $self->{'http_cookie_jar'} );
return bless($self, $class);
};
lib/AMF/Connection.pm view on Meta::CPAN
# make sure we set the proxy if was already set
# NOTE - we do not re-check SOCKS support due we assume the setHTTPProxy() was called earlier
$class->{'ua'}->proxy( [qw(http https)] => $class->{'http_proxy'} )
if( exists $class->{'http_proxy'} and defined $class->{'http_proxy'} );
# copy/pass over cookies too
$class->{'ua'}->cookie_jar( $class->{'http_cookie_jar'} );
};
sub setHTTPCookieJar {
my ($class, $cookie_jar) = @_;
croak "Not a valid cookies jar $cookie_jar"
unless( ref($cookie_jar) and $cookie_jar->isa("HTTP::Cookies") );
# TODO - copy/pass over the current cookies (in-memory by default) if any set
$class->{'http_cookie_jar'}->scan( sub { $cookie_jar->set_cookie( @_ ); } );
$class->{'http_cookie_jar'} = $cookie_jar;
# tell user agent to use new cookie jar
$class->{'ua'}->cookie_jar( $class->{'http_cookie_jar'} );
};
sub getHTTPCookieJar {
my ($class) = @_;
return $class->{'http_cookie_jar'};
};
# send "flex.messaging.messages.RemotingMessage"
sub call {
my ($class, $operation, $arguments, $destination) = @_;
lib/AMF/Connection.pm view on Meta::CPAN
my $endpoint = 'http://myserver.com/flex/amf/'; #AMF server/gateway
my $service = 'myService';
my $method = 'myMethod';
my $client = new AMF::Connection( $endpoint );
$client->setEncoding(3); # use AMF3 default AMF0
$client->setHTTPCookieJar( HTTP::Cookies->new(file => "/tmp/mycookies.txt", autosave => 1, ignore_discard => 1 ) );
my @params = ( 'param1', { 'param2' => 'value2' } );
my $response = $client->call( "$service.$method", \@params );
if ( $response->is_success ) {
my $result_object = $response->getData();
# ...
} else {
die "Can not send remote request for $service.$method method on $endpoint\n";
};
lib/AMF/Connection.pm view on Meta::CPAN
Add an AMF AMF::Connection::MessageHeader to the requests. If $header is a string the header value $value and $required flag can be specified.
=head2 addHTTPHeader ($name, $value)
Add an HTTP header to sub-sequent HTTP requests.
=head2 setUserAgent ($ua)
Allow to specify an alternative LWP::UserAgent. The $ua must support the post() method, proxy() and cookie_jar() if necessary.
=head2 setHTTPCookieJar ($cookie_jar)
Allow to specify an alternative HTTP::Cookies jar. By default AMF::Connection keeps cookies into main-memory and the cookie jar is reset when a new connection is created. When a new cookies jar is set, any existing AMF::Connection cookie is copied ov...
=head2 getHTTPCookieJar ()
Return the current HTTP::Cookies jar in use.
=head2 setCredentials ($username,$password)
Minimal support for AMF authentication. Password seems to be wanted in clear.
=head2 setInputAMFOptions ($options)
Set input stream parsing options. See Storable::AMF0 for available options.
=head2 setOutputAMFOptions ($options)
( run in 0.258 second using v1.01-cache-2.11-cpan-e9199f4ba4c )