我试图在Dio库的帮助下在我的flutter项目中调用PATCH API。这是一个更新客户详细信息的API。它正在获取200状态代码并获得适当的响应。但数据未保存在数据库中。从POSTMAN调用时,API工作正常。它只是在我的flutter项目中不起作用。我已经尝试清除缓存,卸载和重新安装,并尝试不同的登录以及。什么可能是这种奇怪的行为的原因。
这是API函数
Future updateCustomer(Map<String, dynamic> body) async {
try {
final Response res =
await _dioClient.patch(Endpoints.updateCustomer, data: body);
return true;
} catch (e) {
return false;
}
}
此PATCH函数
Future<Response> patch(
String uri, {
data,
Map<String, dynamic>? queryParameters,
Options? options,
CancelToken? cancelToken,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final String key = sprintf('%s+%s', ['get', uri]);
try {
Future _future;
if (running.containsKey(key)) {
_future = running[key]!;
} else {
_future = _dio.patch(
uri,
data: data,
queryParameters: queryParameters,
options: options,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
running[key] = _future;
}
Response res = await _future;
running.remove(key);
return res;
} catch (e) {
running.remove(key);
throw e;
}
}
调用API
if (_formKey.currentState!.validate()) {
Map<String, dynamic> body = {
"source_of_fund": sofValue,
"is_the_user_owner": behalfValue,
"political_association": pepValue,
};
var res = await context
.read<MainStore>()
.updateCustomer(body: body);
if (res) {
context.pushReplacementNamed('Nominee');
} else {
print("$res");
}
}
1条答案
按热度按时间vlurs2pr1#
你检查过尸体了吗?我发现这个问题很熟悉,就像你的情况一样:
POST call works on Postman but not on Flutter