E/flutter (10464): Ошибка: HttpException: соединение закрыто до получения полного заголовка, uri = http:/Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 E/flutter (10464): Ошибка: HttpException: соединение закрыто до получения полного заголовка, uri = http:/

Сообщение Anonymous »


Я разрабатываю флаттер-приложение, подключающееся к серверной части отдыха. При попытке запроса POST с данными я получаю сообщение об ошибке

Необработанное исключение: HttpException: соединение закрыто до получения полного заголовка, uri = http://79.xxx.yyy.zzz/api/Device/Login? ... tc7me7rvLx

Это код вызова POST:

Future makePost(String param, String content) async { окончательный контекст = SecurityContext.defaultContext; context.allowLegacyUnsafeRenegotiation = true; конечный клиент = HttpClient (контекст: контекст); окончательный запрос = await client.postUrl(Uri.parse('http://xxx.yyy.zzz.242/api/Device/Login?param='+param) ); request.headers.set(HttpHeaders.contentTypeHeader, "application/json;"); request.persistentConnection = ложь; request.write(содержание); окончательный ответ = ожидайте request.close(); response.transform(utf8.decoder).listen((содержание) { распечатать (содержимое); }); обратный ответ;

Уже попытка:
[*]Понижение версии AVD до Android Pie (API 28) [*]Запуск на физическом устройстве вместо AVD. [*]DIO/HTTPCLient, оба не работают [*]Протестировал сообщение с данными на другом фиктивном сервере и сработало. [*]Невозможно решить, используя информацию из этого сообщения.
Примечания:
[*]отправка POST без каких-либо данных не приводит к ошибке [*]Для сортировки я создал API-клиент на C#, отправляющий тот же POST, и он работает, поэтому с сервером все в порядке. [*]игнорировать значение параметра param, которое не обсуждается [*]Просмотр с помощью Wireshark показывает, что приложение Flutter отправляет некоторые данные запроса в исходном TCP-пакете перед пакетом POST. В то время как приложение C# .net отправляет данные запроса только в пакете HTTP POST. [*]Уже пробовал обратиться к другому API HTTP (без SSL) с помощью запроса GET и получил ответ. Таким образом, настройки Android фактически разрешают HTTP-трафик (см. снимок экрана ниже).
.net:
Изображение


флаттер с использованием httpclient
Изображение


флаттер с использованием ванильного http


Изображение


Трафик попадает в другой API HTTP (без HTTPS)
Изображение

Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»