C# Сервер HttpClient отклоняет вызовы типа содержимого Multipart - PullRequest
0 голосов
/ 19 июня 2020

Мы решаем перенести наш API на сервер с SSL, до этого все работало нормально, но поскольку мы перешли на сервер с SSL, вызовы с content-type: multipart / form-data просто не работают (403 запрещено), те, у которых Content-Type: application / json работает нормально, я думаю, это проблема с сервером / Apache, но я не хочу оставаться скрещенными, пока тот в команде, у кого есть доступ к этому, пытается решить это, поэтому я хочу отбросить любую проблему с моим кодом HttpClient call

using (var content = new MultipartFormDataContent())
        {
            if (EmailText.Text.Contains("@") && EmailText.Text.Contains("."))
            {
                content.Add(new StringContent(EmailText.Text), "\"email\"");
            }
            else
            {
                content.Add(new StringContent(EmailText.Text), "\"username\"");
            }

            content.Add(new StringContent(PasswordText.Password), "\"password\"");
            var hand = new HttpClientHandler();
            hand.UseDefaultCredentials = true;
            hand.AllowAutoRedirect = true;
            using (var httpClient = new HttpClient(hand))
            {
                var Uri = new Uri("https://kuwai.tech");
                httpClient.BaseAddress = Uri;
                httpClient.DefaultRequestHeaders.Accept.ParseAdd("application/json; charset=utf-8");
                httpClient.DefaultRequestHeaders.Add("appName","MetaPrinter");
                httpClient.DefaultRequestHeaders.Add("latitude", SettingsHelper.Settings.APISettings.Latitude);
                httpClient.DefaultRequestHeaders.Add("longitude", SettingsHelper.Settings.APISettings.Longitude);
                httpClient.DefaultRequestHeaders.Add("hostname", SettingsHelper.Settings.APISettings.IP);
                httpClient.DefaultRequestHeaders.Add("hostType", "PC");
                var httpResponse = httpClient.PostAsync("/apis/" + api + "/auth/login", content);
                responseContent = await httpResponse.Result.Content.ReadAsStringAsync();
                Result result = JsonConvert.DeserializeObject<Result>(responseContent);

Я думаю, что все в моем коде в порядке, но я хочу убедиться, как я сказал, прежде чем использовать сервер SSL, он работал хорошо .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...