put method
Implementation
Future<dynamic> put(String path, {Map<String, dynamic>? data,
bool infiniteTimeout = false, bool overrideBody = false,
Map<String, dynamic>? header, Map<String, dynamic>? queryParameters}) async {
try {
// Backup current timeout settings
final originalConnectTimeout = _dio.options.connectTimeout;
final originalReceiveTimeout = _dio.options.receiveTimeout;
// Apply infinite timeout if requested
if (infiniteTimeout) {
_dio.options.connectTimeout = Duration.zero; // 0 = infinite
_dio.options.receiveTimeout = Duration.zero;
}
Options? requestOptions;
if(header != null) {
requestOptions = Options(
extra: {
"header": header,
},
);
}
dynamic body;
if (overrideBody) {
body = jsonEncode(data ?? {});
} else if (UFUtils.applyEncryption) {
body = EncryptionUtil.secKeyEncryptWithBodyAppKey(data ?? {});
} else {
body = jsonEncode(data ?? {});
}
final response = await _dio.put(UFUtils.baseUrl + path, data: body,
options: requestOptions, queryParameters: queryParameters);
// Restore original timeout settings
if (infiniteTimeout) {
_dio.options.connectTimeout = originalConnectTimeout;
_dio.options.receiveTimeout = originalReceiveTimeout;
}
return response.data;
} catch (e) {
rethrow;
}
}