Пример #1
0
        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);
        }
Пример #2
0
        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();
        }
Пример #3
0
        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);
        }
Пример #4
0
 public async void SendDataToServer(string url, Request request, CallbackOnFinished callbackOnFinish)
 {
     await this.SendDataToServerAsync(url, request, callbackOnFinish);
 }