public void TestDummyRequest() { HttpRequest req = new HttpRequest(); req.BaseUrl("http://ws.audioscrobbler.com/2.0"); req.AddParameter("format", "json"); req.AddParameter("api_key", LastFmAPI.API_KEY); /* * Search for band Muse */ DtoSearch dto = (DtoSearch)req.Get( "?method=artist.search&artist=muse", typeof(DtoSearch)); Assert.AreEqual("Muse", dto.Results.ArtistMatches.Artist[0].Name); Assert.AreEqual("Mouse on Mars", dto.Results.ArtistMatches.Artist[3].Name); /* * Get top tracks from Australia */ DtoGeoTopTracks aus = (DtoGeoTopTracks)req.Get( "?method=geo.gettoptracks&country=australia", typeof(DtoGeoTopTracks)); List <Track> tracks = aus.Tracks.Track; Assert.AreEqual("The Less I Know the Better", tracks[0].Name); Assert.AreEqual("Mr. Brightside", tracks[1].Name); Assert.AreEqual("The Killers", tracks[1].Artist.Name); }
internal Task <string> Login(User user) { var req = new HttpRequest("login"); req.AddParameter("username", user.UserName); req.AddParameter("password", user.Password); return(HttpWorker.RunWorker <string>(req)); }
internal Task <List <ChatObject> > GetHistory(string receiver) { var req = new HttpRequest("GetHistory"); req.AddParameter("username", AppService.CurrentUser); req.AddParameter("receivername", receiver); return(HttpWorker.RunWorker <List <ChatObject> >(req)); }
internal Task <string> Register(User user) { var req = new HttpRequest("register"); req.AddParameter("username", user.UserName); req.AddParameter("firstname", user.FirstName); req.AddParameter("lastname", user.LastName); req.AddParameter("password", user.Password); return(HttpWorker.RunWorker <string>(req)); }
public void AddParameter_Body_GetParameters_Query_ReturnsNone() { var request = new HttpRequest(HttpMethod.Post, "v1/sweet"); request.AddParameter("query1", "hello1", RequestParameterType.Body); request.AddParameter("query2", "hello2", RequestParameterType.Body); var queryParams = request.GetParameters(RequestParameterType.Query); Assert.Empty(queryParams); }
public void AddParameter_GetParameters_QueryOrBody() { var request = new HttpRequest(HttpMethod.Get, "v1/sweet"); request.AddParameter("query1", "hello1"); request.AddParameter("query2", "hello2"); var queryParams = request.GetParameters(RequestParameterType.QueryOrBody).ToList(); Assert.Equal(2, queryParams.Count); }
/// <summary> /// Deletes the file or folder from dropbox with the given path /// </summary> /// <param name="path">The Path of the file or folder to delete.</param> /// <returns></returns> public async Task <MetaData> Delete(string path) { var requestUrl = MakeRequestString("1/fileops/delete", ApiType.Base); var request = new HttpRequest(HttpMethod.Get, requestUrl); request.AddParameter("path", path); request.AddParameter("root", Root); var response = await SendAsync <MetaData>(request); return(response); }
/// <summary> /// Created a new folder with the given path /// </summary> /// <param name="path"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task <Metadata> CreateFolder(string path, CancellationToken cancellationToken) { var requestUrl = MakeRequestString("1/fileops/create_folder", ApiType.Base); var request = new HttpRequest(HttpMethod.Get, requestUrl); request.AddParameter("path", path); request.AddParameter("root", Root); var response = await SendAsync <Metadata>(request, cancellationToken); return(response); }
/// <summary> /// Moves a file or folder on Dropbox /// </summary> /// <param name="fromPath"></param> /// <param name="toPath"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task <Metadata> Move(string fromPath, string toPath, CancellationToken cancellationToken) { var requestUrl = MakeRequestString("1/fileops/move", ApiType.Base); var request = new HttpRequest(HttpMethod.Get, requestUrl); request.AddParameter("from_path", fromPath); request.AddParameter("to_path", toPath); request.AddParameter("root", Root); var response = await SendAsync <Metadata>(request, cancellationToken); return(response); }
/// <summary> /// Copies a file or folder on Dropbox /// </summary> /// <param name="fromPath"></param> /// <param name="toPath"></param> /// <returns></returns> public async Task <MetaData> Copy(string fromPath, string toPath) { var requestUrl = MakeRequestString("1/fileops/copy", ApiType.Base); var request = new HttpRequest(HttpMethod.Get, requestUrl); request.AddParameter("from_path", fromPath); request.AddParameter("to_path", toPath); request.AddParameter("root", Root); var response = await SendAsync <MetaData>(request); return(response); }
/// <summary> /// Gets the deltas for a user's folders and files. /// </summary> /// <param name="cursor">The value returned from the prior call to GetDelta or an empty string</param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task <DeltaPage> GetDelta(string cursor, CancellationToken cancellationToken) { var requestUrl = MakeRequestString("1/delta", ApiType.Base); var request = new HttpRequest(HttpMethod.Post, requestUrl); request.AddParameter("cursor", cursor); var deltaResponse = await SendAsync <DeltaPageInternal>(request, cancellationToken); var deltaPage = new DeltaPage { Cursor = deltaResponse.Cursor, Has_More = deltaResponse.Has_More, Reset = deltaResponse.Reset, Entries = new List <DeltaEntry>() }; foreach (var stringList in deltaResponse.Entries) { deltaPage.Entries.Add(JRawListToDeltaEntry(stringList)); } return(deltaPage); }
/// <summary> /// Gets the deltas for a user's folders and files. /// </summary> /// <param name="cursor">The value returned from the prior call to GetDelta or an empty string</param> /// <returns></returns> public async Task <DeltaPage> GetDelta(string cursor) { var requestUrl = MakeRequestString("1/delta", ApiType.Base); var request = new HttpRequest(HttpMethod.Post, requestUrl); request.AddParameter("cursor", cursor); _oauthHandler.Authenticate(request); var response = await _httpClient.SendAsync(request); //TODO - Error Handling string responseBody = await response.Content.ReadAsStringAsync(); var deltaResponse = JsonConvert.DeserializeObject <DeltaPageInternal>(responseBody); var deltaPage = new DeltaPage { Cursor = deltaResponse.Cursor, Has_More = deltaResponse.Has_More, Reset = deltaResponse.Reset, Entries = new List <DeltaEntry>() }; foreach (var stringList in deltaResponse.Entries) { deltaPage.Entries.Add(StringListToDeltaEntry(stringList)); } return(deltaPage); }
private HttpRequest MakeChunkedUploadPutRequest(long offset, string uploadId = null) { var requestUrl = MakeRequestString(string.Format("1/chunked_upload"), ApiType.Content); var request = new HttpRequest(HttpMethod.Put, requestUrl); if (!String.IsNullOrEmpty(uploadId)) { request.AddParameter("upload_id", uploadId); } request.AddParameter("offset", offset); _oauthHandler.Authenticate(request); return(request); }
public static string Post(this HttpClient client, string url, Dictionary <string, string> param, Dictionary <string, string> header) { var request = new HttpRequest(url, RestSharp.Method.POST); foreach (var key in param.Keys) { request.AddParameter(key, param[key]); } foreach (var key in header.Keys) { request.AddParameter(key, header[key]); } var response = client.Execute(request); var content = response.Content; return(content); }
private HttpRequest MakeChunkedUploadCommitRequest(string path, string filename, string parentRevision, string uploadId) { var requestUrl = MakeRequestString(string.Format("1/commit_chunked_upload/auto/{0}{2}{1}", path.CleanPath(), filename, path.CleanPath().Length > 0 ? "/" : ""), ApiType.Content); var request = new HttpRequest(HttpMethod.Post, requestUrl); request.AddParameter("upload_id", uploadId); if (!string.IsNullOrEmpty(parentRevision)) { request.AddParameter("parent_rev", parentRevision); } _oauthHandler.Authenticate(request); return(request); }
/// <summary> /// A long-poll endpoint to wait for changes on an account. In conjunction with /delta, this call gives you a low-latency way to monitor an account for file changes. /// </summary> /// <param name="cursor">The value returned from the prior call to GetDelta.</param> /// <param name="cancellationToken"></param> /// <param name="timeout">An optional integer indicating a timeout, in seconds. /// The default value is 30 seconds, which is also the minimum allowed value. The maximum is 480 seconds.</param> /// <returns></returns> public async Task <LongpollDeltaResult> GetLongpollDelta(string cursor, CancellationToken cancellationToken, int timeout = 30) { var requestUrl = MakeRequestString("1/longpoll_delta", ApiType.Notify); var request = new HttpRequest(HttpMethod.Get, requestUrl); request.AddParameter("cursor", cursor); if (timeout < 30) { timeout = 30; } if (timeout > 480) { timeout = 480; } request.AddParameter("timeout", timeout); return(await SendAsync <LongpollDeltaResult>(request, cancellationToken)); }
private HttpRequest MakeThumbnailRequest(string path, ThumbnailSize size) { var requestUrl = MakeRequestString(string.Format("1/thumbnails/{0}/{1}", Root, path.CleanPath()), ApiType.Content); var request = new HttpRequest(HttpMethod.Get, requestUrl); request.AddParameter("size", ThumbnailSizeString(size)); _oauthHandler.Authenticate(request); return(request); }
public void AddParameter_GetParameters_Query_DuplicateKeys_ReturnsAll() { var request = new HttpRequest(HttpMethod.Get, "v1/sweet"); request.AddParameter("query1", "hello1"); request.AddParameter("query1", "hello2"); request.AddParameter("query1", "hello3"); var queryParams = request.GetParameters(RequestParameterType.Query).ToList(); Assert.Equal(3, queryParams.Count); Assert.Equal("query1", queryParams[0].Key); Assert.Equal("query1", queryParams[1].Key); Assert.Equal("query1", queryParams[2].Key); Assert.Equal("hello1", queryParams[0].Value); Assert.Equal("hello2", queryParams[1].Value); Assert.Equal("hello3", queryParams[2].Value); }
private void ProcessParameters(HttpRequest req) { try { String[] parameters = req.Content.Split('&').Where(str => str != "").ToArray(); foreach (var parameter in parameters) { String[] pair = parameter.Split('='); req.AddParameter(pair[0], WebUtility.UrlDecode(pair[1])); } } catch { } }
private HttpRequest MakeUploadPutRequest(string path, string filename, string parentRevision) { var requestUrl = MakeRequestString(string.Format("1/files_put/{0}/{1}/{2}", Root, path.CleanPath(), filename), ApiType.Content); var request = new HttpRequest(HttpMethod.Put, requestUrl); _oauthHandler.Authenticate(request); if (!string.IsNullOrEmpty(parentRevision)) { request.AddParameter("parent_rev", parentRevision); } return(request); }
/// <summary> /// Gets the thumbnail of an image given its path /// </summary> /// <param name="path"></param> /// <param name="size"></param> /// <returns></returns> public async Task <byte[]> GetThumbnail(string path, ThumbnailSize size) { var requestUrl = MakeRequestString(string.Format("1/thumbnails/{0}/{1}", Root, path.CleanPath()), ApiType.Content); var request = new HttpRequest(HttpMethod.Get, requestUrl); request.AddParameter("size", ThumbnailSizeString(size)); _oauthHandler.Authenticate(request); var response = await _httpClient.SendAsync(request); //TODO - Error Handling return(await response.Content.ReadAsByteArrayAsync()); }
/// <summary> /// Builds up the oauth parameters and updated the request Uri /// </summary> /// <param name="request"></param> /// <returns></returns> public HttpRequest Authenticate(HttpRequest request) { request.AddParameter("oauth_version", "1.0"); request.AddParameter("oauth_nonce", GenerateNonce()); request.AddParameter("oauth_timestamp", GenerateTimeStamp()); request.AddParameter("oauth_signature_method", SignatureMethod); request.AddParameter("oauth_consumer_key", ApiKey); if (!string.IsNullOrEmpty(UserToken)) { request.AddParameter("oauth_token", UserToken); } request.Parameters.Sort(new QueryParameterComparer()); request.AddParameter("oauth_signature", GenerateSignature(request)); //Now build the real Url var data = EncodeParameters(request); var url = string.Format("{0}?{1}", request.RequestUri, data); request.RequestUri = new Uri(url); //Does it need to do this? return(request); }
public void AddParameter_Body_HttpMethodGet_ThrowsArgumentException() { var request = new HttpRequest(HttpMethod.Get, "v1/sweet"); Assert.Throws <ArgumentException>(() => request.AddParameter("query1", "hello1", RequestParameterType.Body)); }