Ejemplo n.º 1
0
        public static async Task <HttpResponseMessage> PostAsync(string url, BodyContentModels bodyContent, string accessToken = "")
        {
            var client = new HttpClient();


            client.DefaultRequestHeaders.Clear();

            if (!string.IsNullOrEmpty(accessToken))
            {
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
            }

            client.DefaultRequestHeaders
            .Accept
            .Add(new MediaTypeWithQualityHeaderValue(JSONMEDIA));      //ACCEPT header

            HttpContent content = null;

            if (bodyContent != null)
            {
                if (bodyContent.Scheme == MEDIA_SCHEME.Json)
                {
                    content = new StringContent(bodyContent.JsonString, Encoding.UTF8, JSONMEDIA);
                }
                if (bodyContent.Scheme == MEDIA_SCHEME.Form)
                {
                    var form = new MultipartFormDataContent();

                    foreach (var formItem in bodyContent.FormContent)
                    {
                        if (formItem.Content is Byte[])
                        {
                            var fileBytes   = formItem.Content as Byte[];
                            var fileContent = new ByteArrayContent(fileBytes, 0, fileBytes.Length);
                            // Mime types are constantly maintained here
                            // https://github.com/samuelneff/MimeTypeMap
                            // By samuelneff
                            string mimeType = MimeTypes.MimeTypeMap.GetMimeType(formItem.FileName);
                            fileContent.Headers.Add("Content-Type", mimeType);
                            form.Add(fileContent, formItem.Name, formItem.FileName);
                        }
                        else if (formItem.Content is string)
                        {
                            form.Add(new StringContent(formItem.Content as string), formItem.Name);
                        }
                    }
                    content = form;
                }
            }

            return(await client.PostAsync(url, content));
        }
Ejemplo n.º 2
0
        public async Task <TaskModels <TaskFileResultModels> > Post(object model, string query)
        {
            BodyContentModels bodyContent = new BodyContentModels();

            bodyContent.JsonString = JsonConvert.SerializeObject(model);
            bodyContent.Scheme     = MEDIA_SCHEME.Json;

            var response = await WebRequests.PostAsync(ApiEndpoint + query, bodyContent, AccessToken);

            if (response.StatusCode == System.Net.HttpStatusCode.OK || response.ReasonPhrase == "Created")
            {
                var task = await RetrieveTask <object>(response);

                return(await WaitForTaskComplete <TaskFileResultModels>(task.data.id));
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 3
0
        public async Task <TaskModels <TaskFileResultModels> > Import(Byte[] fileBytes, string fileName)
        {
            var url      = commonService.ApiEndpoint + @"/v2/import/upload";
            var response = await WebRequests.PostAsync(url, null, commonService.AccessToken);

            var taskModelWithForm = await commonService.RetrieveTask <TaskFormResultModels>(response);

            long milliseconds             = new DateTimeOffset(DateTime.UtcNow.AddDays(1)).ToUnixTimeMilliseconds();
            BodyContentModels bodyContent = new BodyContentModels();
            var parameters = taskModelWithForm.data.result.form.parameters;

            bodyContent.FormContent = new System.Collections.Generic.List <FormData>
            {
                new FormData(nameof(parameters.acl), parameters.acl ?? ""),
                new FormData(nameof(parameters.key), parameters.key ?? ""),
                new FormData(nameof(parameters.Policy), parameters.Policy ?? ""),
                new FormData(nameof(parameters.success_action_status), parameters.success_action_status ?? ""),
                new FormData(StaticMethods.GetJsonPropertyName <TaskParametersModels>(x => x.XAmzAlgorithm), parameters.XAmzAlgorithm ?? ""),
                new FormData(StaticMethods.GetJsonPropertyName <TaskParametersModels>(x => x.XAmzCredential), parameters.XAmzCredential ?? ""),
                new FormData(StaticMethods.GetJsonPropertyName <TaskParametersModels>(x => x.XAmzDate), parameters.XAmzDate ?? ""),
                new FormData(StaticMethods.GetJsonPropertyName <TaskParametersModels>(x => x.XAmzSignature), parameters.XAmzSignature ?? ""),

                new FormData("file", fileBytes)
                {
                    FileName = fileName
                }
            };
            bodyContent.Scheme = MEDIA_SCHEME.Form;

            response = await WebRequests.PostAsync(taskModelWithForm.data.result.form.url, bodyContent);

            if (response.StatusCode == System.Net.HttpStatusCode.OK || response.ReasonPhrase == "Created")
            {
                return(await RetrieveTask(response, taskModelWithForm));
            }
            else
            {
                return(null);
            }
        }