public static StreamList listStreams(Credentials credentials, string hubName, string startMarker, long limitCount, string titlePrefix)
{
try
{
System.Text.Encoding encoding = System.Text.Encoding.UTF8;
hubName = System.Web.HttpUtility.UrlEncode(hubName);
if (Utils.isArgNotEmpty(startMarker))
{
startMarker = System.Web.HttpUtility.UrlEncode(startMarker);
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
Console.Write(e.StackTrace);
throw new PiliException(e);
}
string urlStr = string.Format("{0}/streams?hub={1}", API_BASE_URL, hubName);
if (Utils.isArgNotEmpty(startMarker))
{
urlStr += "&marker=" + startMarker;
}
if (limitCount > 0)
{
urlStr += "&limit=" + limitCount;
}
if (Utils.isArgNotEmpty(titlePrefix))
{
urlStr += "&title=" + titlePrefix;
}
HttpWebResponse response = null;
try
{
Uri url = new Uri(urlStr);
string macToken = credentials.signRequest(url, "GET", null, null);
mOkHttpClient = (HttpWebRequest)HttpWebRequest.Create(url);
mOkHttpClient.Method = WebRequestMethods.Http.Get;
mOkHttpClient.UserAgent = Utils.UserAgent;
mOkHttpClient.Headers.Add("Authorization", macToken);
response = (HttpWebResponse)mOkHttpClient.GetResponse();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
Console.Write(e.StackTrace);
throw new PiliException(e);
}
// response never be null
if ((int)response.StatusCode == 200)
{
try
{
StreamReader reader = new StreamReader(response.GetResponseStream());
string text = reader.ReadToEnd();
JObject jsonObj = JObject.Parse(text);
return new StreamList(jsonObj, credentials);
}
catch (IOException e)
{
Console.WriteLine(e.ToString());
Console.Write(e.StackTrace);
throw new PiliException(e);
}
}
else
{
throw new PiliException(response);
}
}