Не возвращается большой объем данных request WebBrowser

202
29 апреля 2018, 19:38

Есть winform приложение на C#, которое формирует html-файл (форма ввода сведений: 5 полей для ввода текста и кнопка submit).
На форме расположен WebBrowser, в который загружается данный локальный html -файл. Пользователь вводит сведения (кириллица, в каждое поле не более 200 символов) и отправляет их нажав кнопку submit.

В программе request принимается и парсится.

Все работает корректно для небольших по объему введенных данных.

Проблема – если пользователь ввел большой объем данных. В этом случае в программу возвращается только название файла (того, который был отправлен для отображения в webbrowser).

На данный момент не нашел в описаниях ограничений на максимальную длину строки request. Подскажите, пожалуйста, в каком направлении копать?

Отправка в WebBrowser файла:

  string filename = w_control.UpdateWeb();
                    if (File.Exists(filename))
                    {
                        Uri uriAddress2 = new Uri("file://" + filename);
                        webLogin.Navigate(uriAddress2.LocalPath);
                    }   

Код приема ответа от webbrowser. все просто - классика))

private void webLogin_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
try
    {
        // парсер ответа
        w_control.ParserUrl(e.Url.ToString());
    }
    catch (Exception ex)
    {
        errCount++;
        msgWebUI.AppendLine(String.Format("Func: {0}; Error: {1}; Source: {2}", "webLogin_Navigated", ex.Message, ex.Source));
    }
} //

Проблема, что ответ даже в 400 символов кириллицы не приходит. Если 200 символов - все хорошо. Точную границы не нашел. Неудача зависит только от длины введенного текста.

Код html корректный. Если html файл открыть в браузере (Хром), ввести много данных и нажать submit, то в адресной строке "правильная" длинная строка!

Появилась мысль: если возвращается только название файла - может ответ в файле? такое может быть? Сейчас не за компьютером - проверю догадку вечером.

Answer 1

В Microsoft Internet Explorer максимальная длина URL-адреса ограничена 2083 символами. Кроме того, максимально допустимая длина пути в Internet Explorer составляет 2048 символов. Эти ограничения относятся к URL-адресам как для запросов POST, так и для запросов GET.

При использовании метода GET ограничение составляет 2048 символов за вычетом количества символов в текущем пути.

В то же время метод POST не ограничен размером URL-адреса при отправке пар имя/значение. Эти пары пересылаются в заголовке, а не в URL-адресе.

В документе RFC 2616 "Протокол HTTP/1.1" не определены требования к длине URL-адреса.

READ ALSO
Combobox с CheckBox,как можно сделать?

Combobox с CheckBox,как можно сделать?

Необходимо сделать такой элемент,при помощи каких средств это делается?

224
Вложенные массивы в Unity

Вложенные массивы в Unity

В Unity в инспекторе не отображаются вложенные массивы или я что то не так делаю? Мне необходимо вывести массив массивов в инспектор для заполнения

232
Ошибка StackOverflowException в калькуляторе выражений

Ошибка StackOverflowException в калькуляторе выражений

Делаю калькулятор выражений (по типу 2 + (2 * sin(2^2)))) При запуске и вводе даже банального выражения (2 + 2) выдает StackOverflowExceptionЯ так понимаю проблема...

213
обновить БД на Azure Asp Core

обновить БД на Azure Asp Core

Я изменил модель MyModel добавив в нее новое свойство Myprop{get; set;}

167