CreateGet() private method

private CreateGet ( Uri url ) : HttpWebRequest
url System.Uri
return System.Net.HttpWebRequest
示例#1
0
        protected internal T GetThing <T>(string url) where T : Thing
        {
            var request  = WebAgent.CreateGet(url);
            var response = request.GetResponse();
            var data     = WebAgent.GetResponseString(response.GetResponseStream());
            var json     = JToken.Parse(data);

            return((T)Thing.Parse(this, json, WebAgent));
        }
示例#2
0
        public RedditUser GetUser(string name)
        {
            var request  = WebAgent.CreateGet(string.Format(UserInfoUrl, name));
            var response = request.GetResponse();
            var result   = WebAgent.GetResponseString(response.GetResponseStream());
            var json     = JObject.Parse(result);

            return(new RedditUser().Init(this, json, WebAgent));
        }
示例#3
0
        public Thing GetThingByFullname(string fullname)
        {
            var request  = WebAgent.CreateGet(string.Format(GetThingUrl, fullname));
            var response = request.GetResponse();
            var data     = WebAgent.GetResponseString(response.GetResponseStream());
            var json     = JToken.Parse(data);

            return(Thing.Parse(this, json["data"]["children"][0], WebAgent));
        }
示例#4
0
        /// <summary>
        /// Initializes the User property if it's null,
        /// otherwise replaces the existing user object
        /// with a new one fetched from reddit servers.
        /// </summary>
        public void InitOrUpdateUser()
        {
            var request  = WebAgent.CreateGet(string.IsNullOrEmpty(WebAgent.AccessToken) ? MeUrl : OAuthMeUrl);
            var response = (HttpWebResponse)request.GetResponse();
            var result   = WebAgent.GetResponseString(response.GetResponseStream());
            var json     = JObject.Parse(result);

            User = new AuthenticatedUser().Init(this, json, WebAgent);
        }
        public string GetFlairCssClass(string user)
        {
            var request  = WebAgent.CreateGet(String.Format(FlairListUrl + "?name=" + user, Name));
            var response = request.GetResponse();
            var data     = WebAgent.GetResponseString(response.GetResponseStream());
            var json     = JToken.Parse(data);

            return((string)json["users"][0]["flair_css_class"]);
        }
示例#6
0
        public WikiPageSettings GetPageSettings(string name)
        {
            var request  = WebAgent.CreateGet(string.Format(WikiPageSettingsUrl, Subreddit.Name, name));
            var response = request.GetResponse();
            var json     = JObject.Parse(WebAgent.GetResponseString(response.GetResponseStream()));
            var result   = new WikiPageSettings(Reddit, json["data"], WebAgent);

            return(result);
        }
示例#7
0
        public WikiPage GetPage(string page, string version)
        {
            var request  = WebAgent.CreateGet(string.Format(GetWikiPageUrl, Subreddit.Name, page, version));
            var response = request.GetResponse();
            var json     = JObject.Parse(WebAgent.GetResponseString(response.GetResponseStream()));
            var result   = new WikiPage(Reddit, json["data"], WebAgent);

            return(result);
        }
示例#8
0
        public SubredditStyle GetStylesheet()
        {
            var request  = WebAgent.CreateGet(string.Format(StylesheetUrl, Name));
            var response = request.GetResponse();
            var data     = WebAgent.GetResponseString(response.GetResponseStream());
            var json     = JToken.Parse(data);

            return(new SubredditStyle(Reddit, this, json, WebAgent));
        }
示例#9
0
        protected async internal Task <T> GetThingAsync <T>(string url) where T : Thing
        {
            var request  = WebAgent.CreateGet(url);
            var response = request.GetResponse();
            var data     = WebAgent.GetResponseString(response.GetResponseStream());
            var json     = JToken.Parse(data);
            var ret      = await Thing.ParseAsync(this, json, WebAgent);

            return((T)ret);
        }
示例#10
0
        public Comment GetComment(Uri uri)
        {
            var url      = string.Format(GetPostUrl, uri.AbsoluteUri);
            var request  = WebAgent.CreateGet(url);
            var response = request.GetResponse();
            var data     = WebAgent.GetResponseString(response.GetResponseStream());
            var json     = JToken.Parse(data);

            var sender = new Post().Init(this, json[0]["data"]["children"][0], WebAgent);

            return(new Comment().Init(this, json[1]["data"]["children"][0], WebAgent, sender));
        }
示例#11
0
        public JToken GetToken(Uri uri)
        {
            var url = uri.AbsoluteUri;

            if (url.EndsWith("/"))
            {
                url = url.Remove(url.Length - 1);
            }

            var request  = WebAgent.CreateGet(string.Format(GetPostUrl, url));
            var response = request.GetResponse();
            var data     = WebAgent.GetResponseString(response.GetResponseStream());
            var json     = JToken.Parse(data);

            return(json[0]["data"]["children"].First);
        }
示例#12
0
        public Comment[] GetComments()
        {
            var comments = new List <Comment>();

            var request  = WebAgent.CreateGet(string.Format(GetCommentsUrl, Id));
            var response = request.GetResponse();
            var data     = WebAgent.GetResponseString(response.GetResponseStream());
            var json     = JArray.Parse(data);

            var postJson = json.Last()["data"]["children"];

            foreach (var comment in postJson)
            {
                comments.Add(new Comment(Reddit, comment, WebAgent));
            }

            return(comments.ToArray());
        }
示例#13
0
        public IEnumerable <ModeratorUser> GetModerators()
        {
            var request        = WebAgent.CreateGet(string.Format(ModeratorsUrl, Name));
            var response       = request.GetResponse();
            var responseString = WebAgent.GetResponseString(response.GetResponseStream());
            var json           = JObject.Parse(responseString);
            var type           = json["kind"].ToString();

            if (type != "UserList")
            {
                throw new FormatException("Reddit responded with an object that is not a user listing.");
            }
            var data   = json["data"];
            var mods   = data["children"].ToArray();
            var result = new ModeratorUser[mods.Length];

            for (var i = 0; i < mods.Length; i++)
            {
                var mod = new ModeratorUser(Reddit, mods[i]);
                result[i] = mod;
            }
            return(result);
        }
示例#14
0
 public SubredditSettings GetSettings()
 {
     if (Reddit.User == null)
     {
         throw new AuthenticationException("No user logged in.");
     }
     try
     {
         var request  = WebAgent.CreateGet(string.Format(GetSettingsUrl, Name));
         var response = request.GetResponse();
         var data     = WebAgent.GetResponseString(response.GetResponseStream());
         var json     = JObject.Parse(data);
         return(new SubredditSettings(this, Reddit, json, WebAgent));
     }
     catch // TODO: More specific catch
     {
         // Do it unauthed
         var request  = WebAgent.CreateGet(string.Format(GetReducedSettingsUrl, Name));
         var response = request.GetResponse();
         var data     = WebAgent.GetResponseString(response.GetResponseStream());
         var json     = JObject.Parse(data);
         return(new SubredditSettings(this, Reddit, json, WebAgent));
     }
 }