private HttpStatusCode HttpPost(string additionalUri, string body, out string responseString) { OAuth2Client.AccessToken ac = _oauth2Client.GetAccessToken(false); if (ac == null) { responseString = null; return(HttpStatusCode.BadRequest); } responseString = string.Empty; HttpClient client = new HttpClient(); client.BaseAddress = _senslinkUri; // We want the response to be JSON. client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _oauth2Client.GetAccessToken(false).access_token); // Build up the data to POST. StringContent content = new StringContent(body); content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json"); Task <HttpResponseMessage> postTask = null; try { postTask = client.PostAsync(additionalUri, content); postTask.Wait(50000); } catch { } HttpStatusCode responseCode = HttpStatusCode.BadRequest; if (postTask.IsCompleted && !postTask.IsFaulted && !postTask.IsCanceled) { HttpResponseMessage message = postTask.Result; if (message.IsSuccessStatusCode) { Task <string> responseContent = message.Content.ReadAsStringAsync(); responseContent.Wait(5000); if (responseContent.IsCompleted && !postTask.IsFaulted && !postTask.IsCanceled) { if (postTask.Result != null) { responseString = responseContent.Result; } } } responseCode = postTask.Result.StatusCode; } return(responseCode); }
private HttpStatusCode HttpGet(string additionalUri, out string responseString) { OAuth2Client.AccessToken ac = _oauth2Client.GetAccessToken(false); if (ac == null) { responseString = null; return(HttpStatusCode.BadRequest); } responseString = string.Empty; HttpClient client = new HttpClient(); client.BaseAddress = _senslinkUri; // We want the response to be JSON. client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", ac.access_token); // Build up the data to POST. Task <HttpResponseMessage> getTask = client.GetAsync(additionalUri); getTask.Wait(50000); if (getTask.IsCompleted && !getTask.IsFaulted && !getTask.IsCanceled) { HttpResponseMessage message = getTask.Result; if (message.IsSuccessStatusCode) { Task <string> readTask = null; try { readTask = message.Content.ReadAsStringAsync(); } catch { } readTask.Wait(5000); if (readTask.IsCompleted && !readTask.IsFaulted && !readTask.IsCanceled) { if (getTask.Result != null) { responseString = readTask.Result; } } } } return(getTask.Result.StatusCode); }
private HttpStatusCode HttpGetFile(string additionalUrl, out byte[] downloadedFile) { downloadedFile = null; OAuth2Client.AccessToken ac = _oauth2Client.GetAccessToken(false); if (ac == null) { return(HttpStatusCode.BadRequest); } HttpClient client = new HttpClient(); client.BaseAddress = _senslinkUri; // We want the response to be JSON. client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _oauth2Client.GetAccessToken(false).access_token); client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); Task <HttpResponseMessage> getTask = client.GetAsync(additionalUrl); Console.WriteLine("Downloading"); while (!getTask.IsCompleted) { Console.Write("."); System.Threading.Thread.Sleep(1000); } HttpStatusCode responseCode = getTask.Result.StatusCode; if (getTask.Status == TaskStatus.RanToCompletion && getTask.Status != TaskStatus.Faulted && getTask.Status != TaskStatus.Canceled) { HttpContent content = getTask.Result.Content; Task <byte[]> readTask = content.ReadAsByteArrayAsync(); while (!readTask.IsCompleted) { Console.Write("."); System.Threading.Thread.Sleep(1000); } downloadedFile = readTask.Result; } return(responseCode); }
private HttpStatusCode HttpPostMultiPart(out string responseString, string additionalUri, string filePath, bool overWrite, FileMetaData metaData) { OAuth2Client.AccessToken ac = _oauth2Client.GetAccessToken(false); if (ac == null) { responseString = null; return(HttpStatusCode.BadRequest); } responseString = string.Empty; HttpClient client = new HttpClient(); client.BaseAddress = _senslinkUri; // We want the response to be JSON. client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _oauth2Client.GetAccessToken(false).access_token); FileInfo fi = new FileInfo(filePath); byte[] fileBytes = File.ReadAllBytes(filePath); MultipartFormDataContent requestContent = new MultipartFormDataContent(); //First Part - File ByteArrayContent fileContent = new ByteArrayContent(fileBytes); fileContent.Headers.Remove("Content-Type"); fileContent.Headers.Add("Content-Disposition", $"form-data; name=\"\"; filename=\"{fi.Name}\""); requestContent.Add(fileContent); //Second Part - metaData in JSON format string jsonContent = JsonConvert.SerializeObject(metaData); StringContent metaDataContent = new StringContent(jsonContent); metaDataContent.Headers.Remove("Content-Type"); metaDataContent.Headers.Add("Content-Disposition", "form-data; name=\"metaData\""); requestContent.Add(metaDataContent); //Third Part - metaData in JSON format StringContent overWriteContent = new StringContent(overWrite.ToString()); overWriteContent.Headers.Remove("Content-Type"); overWriteContent.Headers.Add("Content-Disposition", "form-data; name=\"overWrite\""); requestContent.Add(overWriteContent); //Forth Part - metaData in JSON format StringContent sharedWithUsersContent = new StringContent(metaData.shareLevel.ToString()); sharedWithUsersContent.Headers.Remove("Content-Type"); sharedWithUsersContent.Headers.Add("Content-Disposition", "form-data; name=\"sharedWithUsers\""); requestContent.Add(sharedWithUsersContent); // Build up the data to Put Task <HttpResponseMessage> putTask = null; try { putTask = client.PostAsync(additionalUri, requestContent); putTask.Wait(50000); } catch { } HttpStatusCode responseCode = HttpStatusCode.BadRequest; if (putTask.IsCompleted && !putTask.IsFaulted && !putTask.IsCanceled) { HttpResponseMessage message = putTask.Result; if (message.IsSuccessStatusCode) { Task <string> responseContent = message.Content.ReadAsStringAsync(); responseContent.Wait(5000); if (responseContent.IsCompleted && !putTask.IsFaulted && !putTask.IsCanceled) { if (putTask.Result != null) { responseString = responseContent.Result; } } } responseCode = putTask.Result.StatusCode; } return(responseCode); }