Below is a perl script kindly provided by one of our customers who wishes to remain annonymous:
" thought the following may be useful; An example Perl script to access the Gemini Web Services - you may want to make it more widely available, as I've not seen one elsewhere. "
-- Begin Perl --
#!/usr/local/bin/perl -w
#
# Local settings
#
use constant GEMINI_URL => 'http://localhost/Gemini'; # Note - no trailing '/'
use constant GEMINI_ACCESS_CODE => 'SomethingOtherThanABC123'; # As specified in Web.config
use constant DEBUG => 0;
$ENV{HTTP_proxy} = '';
#
# Common settings
#
use constant GEMINI_WS_URI => 'http://countersoft.com/gemini/webservices/';
use strict;
use warnings;
use SOAP::Lite maptype => {};
#
# Turn on tracing, if we're in debug mode
#
SOAP::Lite->import(+trace => "all") if DEBUG;
#
# Create a SOAP handler
#
print "Generating SOAP handler\n" if DEBUG;
my $soapHandler = SOAP::Lite
-> uri( GEMINI_WS_URI )
-> on_action( sub { join '', GEMINI_WS_URI, $_[1] } )
-> proxy( GEMINI_URL.'/webservices/Gemini.asmx' );
#
# Generate a "GetIssue" request
#
my $issueID = 1;
print "Generating request for issue $issueID\n" if DEBUG;
my $getIssue = SOAP::Data->name('GetIssue')
->attr({xmlns => GEMINI_WS_URI});
#
# Set the parameters to "GetIssue"
#
print "Generating params for request\n" if DEBUG;
my @params = ( SOAP::Data->name( accessCode => GEMINI_ACCESS_CODE ),
SOAP::Data->name( issueID => $issueID ) );
#
# Send the request
#
print "Sending request\n" if DEBUG;
my $soapResponse = $soapHandler->call($getIssue => @params);
#
# Extract the response we want
#
my $issueSummary = $soapResponse->valueof('//GetIssueResult/IssueSummary' );
print "Summary of issue $issueID is \"$issueSummary\"\n";
-- End Perl --