public async Task <string> SendFileToServerAsync(string url, string filePath, string name, Request request, CallbackOnFinished callbackOnFinish = null) { InitHttpClient(); this.ConvertRequestToJson(request); MultipartFormDataContent form = new MultipartFormDataContent(); IFile fileToSend = await FileSystem.Current.GetFileFromPathAsync(filePath); Stream fileToSendStream = await fileToSend.OpenAsync(FileAccess.Read); byte[] fileToSendBytesArray = StorageUtility.ConvertStreamInBytesArray(fileToSendStream); form.Add(new StringContent(API_KEY), "apikey"); form.Add(new StringContent(JsonRequest), "data"); form.Add(new ByteArrayContent(fileToSendBytesArray, 0, fileToSendBytesArray.Length), name, filePath); Debug.WriteLine("Sending json : " + JsonRequest); HttpResponseMessage response = await httpClient.PostAsync(url, form); response.EnsureSuccessStatusCode(); httpClient.Dispose(); string serverResponse = response.Content.ReadAsStringAsync().Result; Debug.WriteLine("Server response = " + serverResponse); callbackOnFinish?.Invoke(serverResponse); return(serverResponse); }
public async void WriteFileLocally(MemoryStream imageStream, string filename, CallbackOnFinished callbackOnFinished) { IFolder localFolder = FileSystem.Current.LocalStorage; IFile localFile = null; localFolder = await localFolder.CreateFolderAsync(localFolderName, CreationCollisionOption.OpenIfExists); bool fileCreated = false; int counter = 0; while (!fileCreated) { try { filename += ".jpg"; localFile = await localFolder.CreateFileAsync(filename, CreationCollisionOption.FailIfExists); fileCreated = true; } catch (Exception e) { //file exists counter++; filename = StorageUtility.UpdateFilename(filename, counter); } } using (Stream stream = await localFile.OpenAsync(FileAccess.ReadAndWrite)) { imageStream.Position = 0; imageStream.CopyTo(stream); stream.Flush(); } bool sendingResult = await SendFilePicToServer(localFile.Path, "file"); if (sendingResult) { await localFile.DeleteAsync(); } //chiamare la callback operazione conclusa callbackOnFinished(); }
public async Task <string> SendDataToServerAsync(string url, Request request, CallbackOnFinished callbackOnFinish = null) { InitHttpClient(); this.ConvertRequestToJson(request); List <KeyValuePair <string, string> > pairs = new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("data", JsonRequest), new KeyValuePair <string, string>("apikey", API_KEY) }; FormUrlEncodedContent content = new FormUrlEncodedContent(pairs); Debug.WriteLine("Sending json : " + JsonRequest); HttpResponseMessage response = await httpClient.PostAsync(url, content); response.EnsureSuccessStatusCode(); string serverResponse = response.Content.ReadAsStringAsync().Result; Debug.WriteLine("Server response = " + serverResponse); callbackOnFinish?.Invoke(serverResponse); return(serverResponse); }
public async void SendDataToServer(string url, Request request, CallbackOnFinished callbackOnFinish) { await this.SendDataToServerAsync(url, request, callbackOnFinish); }