Use REST service via a proxy server with socket(Perl)

From WABI

Jump to: navigation, search

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);

Link

Japanese page

Personal tools