|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
public interface ClientSession
The ClientSession interface provides methods for OBEX requests.
This interface provides a way to define headers for any OBEX operation.
OBEX operations are CONNECT, SETPATH, PUT, GET and DISCONNECT. For PUTs and
GETs, this interface will return a javax.obex.Operation object
to complete the operations. For CONNECT, DISCONNECT, and SETPATH operations,
this interface will complete the operation and return the result in a
HeaderSet object.
Connection ID and Target Headers
According to the IrOBEX specification, a packet may not contain a Connection
ID and Target header. Since the Connection ID header is managed by the
implementation, it will not send a Connection ID header if a Connection ID
was specified in a packet that has a Target header. In other words, if an
application adds a Target header to a HeaderSet object used
in an OBEX operation and a Connection ID was specified, no Connection ID
will be sent in the packet containing the Target header.
CREATE-EMPTY and PUT-DELETE Requests
To perform a CREATE-EMPTY request, the client must call the
put() method. With the Operation object returned,
the client must open the output stream by calling
openOutputStream() and then close the stream by calling
close() on the OutputStream without writing
any data. Using the DataOutputStream returned from
openDataOutputStream() works the same way.
There are two ways to perform a PUT-DELETE request. The
delete() method is one way to perform a PUT-DELETE request.
The second way to perform a PUT-DELETE request is by calling
put() and never calling openOutputStream() or
openDataOutputStream() on the Operation object
returned from put().
PUT example
void putObjectViaOBEX(ClientSession conn, HeaderSet head, byte[] obj)
throws IOException {
// Include the length header
head.setHeader(HeaderSet.LENGTH, new Long(obj.length));
// Initiate the PUT request
Operation op = conn.put(head);
// Open the output stream to put the object to it
OutputStream out = op.openOutputStream();
// Send the object to the server
out.write(obj);
// End the transaction
out.close();
op.close();
}
GET example
byte[] getObjectViaOBEX(ClientSession conn, HeaderSet head) throws IOException {
// Send the initial GET request to the server
Operation op = conn.get(head);
// Get the object from the input stream
InputStream in = op.openInputStream();
ByteArrayOutputStream out = new ByteArrayOutputStream();
int data = in.read();
while (data != -1) {
out.write((byte)data);
data = in.read();
}
// End the transaction
in.close();
op.close();
byte[] obj = out.toByteArray();
out.close();
return obj;
}
| Method Summary | ||
|---|---|---|
HeaderSet |
connect(HeaderSet headers)
Completes an OBEX CONNECT operation. |
|
HeaderSet |
createHeaderSet()
Creates a javax.obex.HeaderSet object. |
|
HeaderSet |
delete(HeaderSet headers)
Performs an OBEX DELETE operation. |
|
HeaderSet |
disconnect(HeaderSet headers)
Completes an OBEX DISCONNECT operation. |
|
Operation |
get(HeaderSet headers)
Performs an OBEX GET operation. |
|
long |
getConnectionID()
Retrieves the connection ID that is being used in the present connection. |
|
Operation |
put(HeaderSet headers)
Performs an OBEX PUT operation. |
|
void |
setAuthenticator(Authenticator auth)
Sets the Authenticator to use with this connection. |
|
void |
setConnectionID(long id)
Sets the connection ID header to include in the request packets. |
|
HeaderSet |
setPath(HeaderSet headers,
boolean backup,
boolean create)
Completes an OBEX SETPATH operation. |
|
| Methods inherited from interface javax.microedition.io.Connection |
|---|
close |
| Method Detail |
|---|
void setAuthenticator(Authenticator auth)
Authenticator to use with this connection. The
Authenticator allows an application to respond to
authentication challenge and authentication response headers. If no
Authenticator is set, the
response to an authentication challenge or authentication response
header is implementation dependent.
auth - the Authenticator to use for this connection
NullPointerException - if auth is nullHeaderSet createHeaderSet()
javax.obex.HeaderSet object. This object
can be used to define header values in a request.
javax.obex.HeaderSet objectHeaderSetvoid setConnectionID(long id)
id - the connection ID to use
IllegalArgumentException - if id is not in the
range 0 to 232-1long getConnectionID()
HeaderSet connect(HeaderSet headers)
throws IOException
headers
argument is null, no headers will be sent in the request.
This method will never return null.
This method must be called and a successful response code of
OBEX_HTTP_OK must be received before put(),
get(), setPath(), delete(), or
disconnect() may be called. Similarly, after a successful
call to disconnect(), this method must be called before
calling put(), get(), setPath(),
delete(), or disconnect().
headers - the headers to send in the CONNECT request
IOException - if an error occurred in the transport layer; if
the client is already in an operation; if this method had already been
called with a successful response code of OBEX_HTTP_OK and
calls to disconnect() have not returned a response code
of OBEX_HTTP_OK; if the
headers defined in headers exceed the max packet length
IllegalArgumentException - if headers was not
created by a call to createHeaderSet()
HeaderSet disconnect(HeaderSet headers)
throws IOException
headers
argument is null, no headers will be sent in the request.
This method will end the session. A new session may be started by
calling connect(). This method will never return
null.
headers - the header to send in the DISCONNECT request
IOException - if an error occurred in the transport layer; if
the client is already in an operation; if an OBEX connection does not
exist because connect() has not been called; if
disconnect() has been called and received a response code
of OBEX_HTTP_OK after the last call to
connect(); if the headers defined in headers
exceed the max packet length
IllegalArgumentException - if headers were not
created by a call to createHeaderSet()
HeaderSet setPath(HeaderSet headers,
boolean backup,
boolean create)
throws IOException
null.
backup - if true, instructs the server to back up one
directory before moving to the directory specified in name (similar to
cd .. on PCs); if false, apply name to the
current directorycreate - if true, instructs the server to create the
directory if it does not exist; if false, instruct the server
to return an error code if the directory does not existheaders - the headers to include in the SETPATH request
IOException - if an error occurred in the transport layer; if
the client is already in an operation; if an OBEX connection does not
exist because connect() has not been called; if
disconnect() had been called and a response code of
OBEX_HTTP_OK was received; if the headers defined in
headers exceed the max packet length
IllegalArgumentException - if headers were not
created by a call to createHeaderSet()
HeaderSet delete(HeaderSet headers)
throws IOException
null.
headers - the header to send in the DELETE request
IOException - if an error occurred in the transport layer; if
the client is already in an operation; if an OBEX connection does not
exist because connect() has not been called; if
disconnect() had been called and a response code of
OBEX_HTTP_OK was received; if the headers defined in
headers exceed the max packet length
IllegalArgumentException - if headers were not
created by a call to createHeaderSet()
Operation get(HeaderSet headers)
throws IOException
Operation object to
continue with the operation. This method will never return
null.
headers - the OBEX headers to send as part of the initial GET
request
IOException - if an error occurred in the transport layer; if
an OBEX connection does not
exist because connect() has not been called; if
disconnect() had been called and a response code of
OBEX_HTTP_OK was received; if connect() has not
been called; if the client is already in an operation;
IllegalArgumentException - if headers were not
created by a call to createHeaderSet()Operation
Operation put(HeaderSet headers)
throws IOException
Operation object to
continue with the PUT operation. This method will never return
null.
headers - the OBEX headers to send in the initial PUT request
IOException - if an error occurred in the transport layer; if
an OBEX connection does not
exist because connect() has not been called; if
disconnect() had been called and a response code of
OBEX_HTTP_OK was received; if connect() has not
been called; if the client is already in an operation;
IllegalArgumentException - if headers were not
created by a call to createHeaderSet()Operation
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
Copyright 1999-2011 Research In Motion Limited. 295 Phillip Street, Waterloo, Ontario, Canada, N2L 3W8. All Rights Reserved.
Java is a trademark of Oracle America Inc. in the US and other countries.
Legal