What solved it for me was using Dio with native IO plugin.
Example
import 'package:native_dio_adapter/native_dio_adapter.dart';
import 'package:dio/dio.dart';
Dio client = Dio();
client.httpClientAdapter = NativeAdapter(
createCupertinoConfiguration: () => URLSessionConfiguration.ephemeralSessionConfiguration()
..allowsCellularAccess = true
..allowsConstrainedNetworkAccess = true
..allowsExpensiveNetworkAccess = true,
);
var request = await client.post<Map<String, dynamic>>(Uri.parse(baseUrl + path).toString(),
data: convert.jsonEncode(body),
options: Options(
headers: {"Content-Type": "application/json"},
));
It works because on Appclip, dart IO is blocked from accessing internet, don't know why, but if requests go though native platform it works fine.