private static Uri APIUri(string path, IDictionary <string, string> extraQuery)
        {
            Dictionary <string, string> dictionary;

            if (extraQuery != null)
            {
                dictionary = new Dictionary <string, string>(extraQuery);
            }
            else
            {
                dictionary = new Dictionary <string, string>();
            }
            dictionary.Add("unityversion", Application.unityVersion);
            dictionary.Add("toolversion", "V4.1.0");
            dictionary.Add("xunitysession", AssetStoreClient.ActiveOrUnauthSessionID);
            UriBuilder    uriBuilder    = new UriBuilder(AssetStoreClient.GetProperPath(path));
            StringBuilder stringBuilder = new StringBuilder();

            foreach (KeyValuePair <string, string> keyValuePair in dictionary)
            {
                string key = keyValuePair.Key;
                string arg = Uri.EscapeDataString(keyValuePair.Value);
                stringBuilder.AppendFormat("&{0}={1}", key, arg);
            }
            if (!string.IsNullOrEmpty(uriBuilder.Query))
            {
                uriBuilder.Query = uriBuilder.Query.Substring(1) + stringBuilder;
            }
            else
            {
                uriBuilder.Query = stringBuilder.Remove(0, 1).ToString();
            }
            DebugUtils.Log("preparing: " + uriBuilder.Uri);
            return(uriBuilder.Uri);
        }