public UnbxdResult search(UnbxdParams unbxdParams, String address, bool spellCheck) { String url = prepareUrl(unbxdParams, address); try { HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url); request.Timeout = 5000; request.Method = "GET"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); HttpStatusCode resp = response.StatusCode; Stream stream = response.GetResponseStream(); string json = ""; using (StreamReader reader = new StreamReader(stream)) { while (!reader.EndOfStream) { json += reader.ReadLine(); } } UnbxdResult result = getResult(json); return result; } catch (Exception ex) { throw new UnbxdException("call to api failed"); } }
static void Main(string[] args) { UnbxdService service = new UnbxdService(); UnbxdParams param = new UnbxdParams(); param.query = "*"; param.ruleSet = "search"; UnbxdResult result = service.search(param, "http://yepme-u1386678484396.search.unbxdapi.com/f12a6e3f0f45fe29babe00f494840f89", false); int x = result.totalHits; }
private string prepareUrl(UnbxdParams unbxdParams, string address) { StringBuilder url = new StringBuilder(); url.Append(address) // Validate the address .Append(Constants.PATH_SEPERATOR) .Append(unbxdParams.ruleSet) // validate for ruleset .Append("?") .Append(getQueryParam(unbxdParams)); int page = unbxdParams.page != 0 ? 1 : unbxdParams.page; addParamToUrl(url, Constants.UnbxdQueryParams.PAGE, page.ToString()); int rows = unbxdParams.limit != 0 ? unbxdParams.limit : 10; addParamToUrl(url, Constants.UnbxdQueryParams.ROWS, rows.ToString()); if (unbxdParams.filter != null && unbxdParams.filter.Count != 0) { addParamToUrl(url, Constants.UnbxdQueryParams.FILTER, getFilter(unbxdParams.filter, unbxdParams.rangeFilter)); } if (unbxdParams.sort != null && unbxdParams.sort.Count != 0) { addParamToUrl(url, Constants.UnbxdQueryParams.FILTER, getSort(unbxdParams.sort)); } if (unbxdParams.fields != null && unbxdParams.fields.Count != 0) { foreach (String field in unbxdParams.fields) { addParamToUrl(url, Constants.UnbxdQueryParams.FL, field); } } if (!String.IsNullOrEmpty(unbxdParams.userId)) { addParamToUrl(url, Constants.UnbxdQueryParams.USER_ID, unbxdParams.userId); } if (!String.IsNullOrEmpty(unbxdParams.userIP)) { addParamToUrl(url, Constants.UnbxdQueryParams.USER_IP, unbxdParams.userIP); } addParamToUrl(url, Constants.UnbxdQueryParams.FORMAT, Constants.DEFAULT_RESPONSE_FORMAT); return url.ToString(); }
private String getQueryParam(UnbxdParams unbxdParams) { if (unbxdParams.ruleSet.Equals(Constants.Rulesets.BROWSE, StringComparison.InvariantCultureIgnoreCase)) { return Constants.UnbxdQueryParams.CATEGORY_ID + unbxdParams.categoryId; } if (unbxdParams.ruleSet.Equals(Constants.Rulesets.FILTER, StringComparison.InvariantCultureIgnoreCase)) { return Constants.UnbxdQueryParams.COND + getFilter(unbxdParams.filter, unbxdParams.rangeFilter); } return Constants.UnbxdQueryParams.QUERY + "=" + (String.IsNullOrEmpty(unbxdParams.query) ? "*" : unbxdParams.query); }