41
http protocol support
The http protocol is implemented to allow remote SPOT applications to open http connections to
any web service accessible from a correctly configured host computer.
To open a connection do:
HttpConnection connection = (HttpConnection)Connector.open("http://
host:[port]/filepath
");
Where
host
is the Internet host name in the domain notation, e.g.
www.hut.fi
or a numerical TCP/IP
address.
port
is the port number, which can usually be omitted, in which case the default of 80
applies.
filepath
is the path/name of the
resource
being requested from the web server.
Here's a complete example that retrieves the source html of the home page from the
http://www.sunspotworld.com website:
HttpConnection connection =
(HttpConnection)Connector.open("http://www.sunspotworld.com/");
connection.setRequestProperty("Connection", "close");
InputStream in = connection.openInputStream();
StringBuffer buf = new StringBuffer();
int ch;
while ((ch = in.read()) > 0) {
buf.append((char)ch);
}
System.out.println(buf.toString());
in.close();
connection.close();
In order for the http protocol to have access to the specified URL, the device must be within radio
reach of a base station connected to a host running the Socket Proxy. This proxy program is
responsible for communicating with the server specified in the URL. The Socket Proxy program is
started by
ant socket-proxy
or
ant socket-proxy-gui
Configuring the http protocol
The http protocol is implemented as an HTTP client on the Sun SPOTusing the
socket
protocol.
When an http connection is opened, an initial connection is established with the Socket Proxy over
radiogram on port 10 (or as specified in the MANIFEST.MF file of your project). The Socket Proxy
then replies with an available radio port that the device connects to in order to start streaming data.
By default, a broadcast is used in order to find the base station that will be used to open a
connection to the Socket Proxy. In order to use a specific base station add the following property to
the project's MANIFEST.MF file:
com.sun.spot.io.j2me.socket.SocketConnection-BaseStationAddress: <IEEE address>
By default, radiogram port 10 is used to perform the initial connection to the Socket Proxy. This
can be overridden by including the following property in the project's MANIFEST.MF file
com.sun.spot.io.j2me.socket.SocketConnection-BaseStationPort: <radiogram port>