source: core/trunk/client/restclient.pl @ 103

Last change on this file since 103 was 103, checked in by smoser, 13 years ago

#60

File size: 1.9 KB
RevLine 
[103]1#!/usr/bin/perl
2
3use strict;
4use Getopt::Std;
5# load LWP library:
6use LWP::UserAgent;
7use HTML::Parse;
8use Time::HiRes;
9
10# parse options
11my %options;
12getopts('f:u:s:', \%options);
13unless(defined($options{'f'}) && defined($options{u})) {
14  usage();
15}
16
17my $url = $options{u};
18my $file = $options{f};
19my $speed = defined($options{s}) ? $options{s} : 1; 
20if (! -f $file || ! -w $file) {
21  print "error reading input file: ", $file, "\n";
22  exit 1;
23}
24
25
26 
27
28# create UserAgent object
29my $ua = new LWP::UserAgent;
30 
31# set a user agent (browser-id)
32# $ua->agent('Mozilla/5.5 (compatible; MSIE 5.5; Windows NT 5.1)');
33 
34# timeout:
35$ua->timeout(15);
36
37my $i = 0;
38my $buf;
39
40open(FILE, "< $file") || die("error while reading file ", $file);
41while (my $record = <FILE>) {
42  chomp($record);
43  if ($record =~ /^\$GPGGA,/) {
44    flush($buf, $url, $i);
45    #sleep(1);
46    Time::HiRes::sleep(1/$speed);
47    $buf = undef;
48  }
49  $i++;
50  $buf = (defined($buf)) ? "$buf;$record" : $record; 
51}
52flush($buf, $url, $i);
53close(FILE);
54
55exit 0;
56
57sub flush() {
58  my ($records, $url, $count) = @_;
59  my $request = HTTP::Request->new('PUT');
60  $request->url($url);
61  $request->content($records);
62  print "flushing at $count\n";
63  # run the request
64  my $response = $ua->request($request);
65  my $code = $response->code;
66  die("error processing records ", $records) if (200 != $response->code); 
67}
68# proceed the request:
69my $request = HTTP::Request->new('PUT');
70$request->url($url);
71$request->content("blubb");
72 
73my $response = $ua->request($request);
74 
75 
76#
77# responses:
78#
79 
80# response code (like 200, 404, etc)
81my $code = $response->code;
82print "Return code: ", $code, "\n";
83 
84# headers (Server: Apache, Content-Type: text/html, ...)
85my $headers = $response->headers_as_string;
86print "Headers: ", $headers, "\n";
87 
88# HTML body:
89my $body =  $response->content;
90print "Body: ", $body, "\n";
91
92sub usage() {
93  print "usage: bulb\n";
94  exit 1;
95}
Note: See TracBrowser for help on using the repository browser.