Class HttpLookupMethod
java.lang.Object
org.jivesoftware.smack.altconnections.HttpLookupMethod
The HTTP lookup method uses web host metadata to list the URIs of alternative connection methods.
In order to obtain host-meta XRD element from the host in the form of an InputStream,
use getXrdStream(DomainBareJid)
method. To obtain endpoints for Bosh or Websocket
connection endpoints from host, use HttpLookupMethod.LinkRelation.BOSH
and HttpLookupMethod.LinkRelation.WEBSOCKET
respectively with the lookup(DomainBareJid, LinkRelation)
method. In case one is looking
for endpoints described by other than BOSH or Websocket LinkRelation, use the more flexible
lookup(DomainBareJid, String)
method.
DomainBareJid xmppServerAddress = JidCreate.domainBareFrom("example.org");
List<URI> endpoints = HttpLookupMethod.lookup(xmppServiceAddress, LinkRelation.WEBSOCKET);
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
Specifies a link relation for the selected type of connection. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic InputStream
getXrdStream
(DomainBareJid xmppServiceAddress) Constructs a HTTP connection with the host specified by the DomainBareJid and retrieves XRD element in the form of an InputStream.lookup
(DomainBareJid xmppServiceAddress, String relation) Get remote endpoints for the given LinkRelation from host.lookup
(DomainBareJid xmppServiceAddress, HttpLookupMethod.LinkRelation relation) Get remote endpoints for the given LinkRelation from host.parseXrdLinkReferencesFor
(XmlPullParser parser, String relation) Get remote endpoints for the provided LinkRelation from provided XmlPullParser.parseXrdLinkReferencesFor
(XmlPullParser parser, HttpLookupMethod.LinkRelation relation) Get remote endpoints for the provided LinkRelation from provided XmlPullParser.
-
Constructor Details
-
HttpLookupMethod
public HttpLookupMethod()
-
-
Method Details
-
lookup
public static List<URI> lookup(DomainBareJid xmppServiceAddress, String relation) throws IOException, XmlPullParserException, URISyntaxException Get remote endpoints for the given LinkRelation from host.- Parameters:
xmppServiceAddress
- address of hostrelation
- LinkRelation as a string specifying type of connection- Returns:
- list of endpoints
- Throws:
IOException
- exception due to input/output operationsXmlPullParserException
- exception encountered during XML parsingURISyntaxException
- exception to indicate that a string could not be parsed as a URI reference
-
lookup
public static List<URI> lookup(DomainBareJid xmppServiceAddress, HttpLookupMethod.LinkRelation relation) throws IOException, XmlPullParserException, URISyntaxException Get remote endpoints for the given LinkRelation from host.- Parameters:
xmppServiceAddress
- address of hostrelation
-HttpLookupMethod.LinkRelation
specifying type of connection- Returns:
- list of endpoints
- Throws:
IOException
- exception due to input/output operationsXmlPullParserException
- exception encountered during XML parsingURISyntaxException
- exception to indicate that a string could not be parsed as a URI reference
-
getXrdStream
Constructs a HTTP connection with the host specified by the DomainBareJid and retrieves XRD element in the form of an InputStream. The method will throw aFileNotFoundException
if host-meta isn't published.- Parameters:
xmppServiceAddress
- address of host- Returns:
- InputStream containing XRD element
- Throws:
IOException
- exception due to input/output operations
-
parseXrdLinkReferencesFor
public static List<URI> parseXrdLinkReferencesFor(XmlPullParser parser, String relation) throws IOException, XmlPullParserException, URISyntaxException Get remote endpoints for the provided LinkRelation from provided XmlPullParser.- Parameters:
parser
- XmlPullParser that contains LinkRelationsrelation
- type of endpoints specified by the given LinkRelation- Returns:
- list of endpoints
- Throws:
IOException
- exception due to input/output operationsXmlPullParserException
- exception encountered during XML parsingURISyntaxException
- exception to indicate that a string could not be parsed as a URI reference
-
parseXrdLinkReferencesFor
public static List<URI> parseXrdLinkReferencesFor(XmlPullParser parser, HttpLookupMethod.LinkRelation relation) throws IOException, XmlPullParserException, URISyntaxException Get remote endpoints for the provided LinkRelation from provided XmlPullParser.- Parameters:
parser
- XmlPullParser that contains LinkRelationsrelation
- type of endpoints specified by the given LinkRelation- Returns:
- list of endpoints
- Throws:
IOException
- exception due to input/output operationsXmlPullParserException
- exception encountered during XML parsingURISyntaxException
- exception to indicate that a string could not be parsed as a URI reference
-