/// <summary> /// Discovers remote resources. /// </summary> /// <param name="uriPath">path to be queried</param> /// <param name="query">the query to filter resources</param> /// <param name="mediaType">format to use - defaults to any</param> /// <returns>the descoverd <see cref="WebLink"/> representing remote resources, or null if no response</returns> public IEnumerable <WebLink> Discover(string uriPath, String query, int mediaType = MediaType.Undefined) { Request discover = Prepare(Request.NewGet()); discover.ClearUriPath().ClearUriQuery().UriPath = uriPath; if (!String.IsNullOrEmpty(query)) { discover.UriQuery = query; } if (mediaType != MediaType.Undefined) { discover.Accept = mediaType; } Response links = discover.Send().WaitForResponse(Timeout); if (links == null) { // if no response, return null (e.g., timeout) return(null); } switch (links.ContentType) { case MediaType.ApplicationLinkFormat: return(LinkFormat.Parse(links.PayloadString)); case MediaType.ApplicationLinkFormatCbor: return(LinkFormat.ParseCbor(links.Payload)); case MediaType.ApplicationLinkFormatJson: return(LinkFormat.ParseJson(links.PayloadString)); default: return(_EmptyLinks); } }