Нужна помощь по прохождению аватара пользователя / фото в Face ++ API - PullRequest
0 голосов
/ 25 октября 2019

У меня есть приложение .net MVC C #, которое я использую для интеграции с FACE ++ (распознавание лиц) API. Я пытаюсь создать пользователя, передавая необходимую информацию из моего приложения в API, API требует сначала войти в систему, а затем передать параметры, есть один параметр (то есть аватар (фото)), который я не смогдля передачи, все остальные параметры передаются правильно, и пользователь создается, но аватар пользователя / фотография остается пустым. Любая помощь по этой проблеме будет принята с благодарностью. Спасибо. Вот что я сделал до сих пор.

public async Task<ActionResult> FileUploadPictures(HttpPostedFileBase file)
        {
            long fileSizeInBytes = file.ContentLength;
            MemoryStream target = new MemoryStream();
            file.InputStream.CopyTo(target);
            byte[] filephoto = target.ToArray();

            string apiUrl = "http://api/auth/login"; //api url for Login
            string apiUrlCreate = "http://apisubject/file "; //api url for Creating User
            //Login Object
            var dataLogin = new
            {
                username = "username",
                password = "password",
            };

            using (HttpClient client = new HttpClient())
            {
                try
                {

                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new 
                    System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); 
                    client.DefaultRequestHeaders.Add("User-Agent", "Koala Admin");
                    // calling api for login
                    HttpResponseMessage response = await client.PostAsJsonAsync(
                     new Uri(apiUrl), dataLogin);

                    if (response.IsSuccessStatusCode)
                    {
                        client.DefaultRequestHeaders.Accept.Clear();
                        client.DefaultRequestHeaders.Accept.Add(new 
                        System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("multipart/form-data"));

                        // content object for Creating User
                        var content = new FormUrlEncodedContent(new[]
                {
                new KeyValuePair<string, string>("name", "login"),
                new KeyValuePair<string, string>("subject_type", "0"),
                **new KeyValuePair<string, string>("avatar", Convert.ToString(filephoto)),  // this parameter is not being set correctly**
            });
                        //calling api for crating user
                        HttpResponseMessage responseUserCreation = await client.PostAsync(
                         apiUrlCreate, content);

                        if (responseUserCreation.IsSuccessStatusCode)
                        {
                            var data2 = await responseUserCreation.Content.ReadAsStringAsync();
                        }
                    }
                    return View();

                }
                catch (Exception ex)
                {
                    throw ex;
                }

            }
        }
...