Use REST service via a proxy server with socket(Perl)
From WABI
Contents |
Summary
Use REST service via a proxy server with socket(Perl)
Description
To use proxy with socket, specify REST service's URL after making socket connection to proxy server.
# make socket and connection $ip = inet_aton($proxy_host); $sockaddr = pack_sockaddr_in($proxy_port, $ip); socket(SOCKET, PF_INET, SOCK_STREAM, 0); connect(SOCKET, $sockaddr); autoflush SOCKET (1); # send http request $url = "http://xml.nig.ac.jp/rest/Invoke"; print SOCKET "POST $url HTTP/1.0\n"; print SOCKET "User-Agent: perl/socket\n"; print SOCKET "Content-Type: application/x-www-form-urlencoded\n";
Sample program
This program executes getDDBJEntry of GetEntry via a proxy server with socket of perl.
Download this program
use Socket; use FileHandle; #set proxy server $proxy_host = '<proxy_server>'; $proxy_port = '<proxy_port>'; #set API server $url = "http://xml.nig.ac.jp/rest/Invoke"; #set parameter. $query = "service=GetEntry&method=getDDBJEntry&accession=AB000200"; $len = length($query); # make socket $ip = inet_aton($proxy_host) || die "host($proxy_host) not found.\n"; $sockaddr = pack_sockaddr_in($proxy_port, $ip); socket(SOCKET, PF_INET, SOCK_STREAM, 0) || die "socket error.\n"; # make connection connect(SOCKET, $sockaddr) || die "connect $proxy_host $proxy_port error.\n"; autoflush SOCKET (1); # send http request. print SOCKET "POST $url HTTP/1.0\n"; print SOCKET "User-Agent: perl/socket\n"; print SOCKET "Content-Type: application/x-www-form-urlencoded\n"; print SOCKET "Content-Length: $len\n\n"; print SOCKET $query."\n"; # show response. while (chomp($buf=<SOCKET>)) { print "$buf\n"; } # socket close close(SOCKET);
