From 0a2cfab6d4858798ac0c4953c50cd57144801bb0 Mon Sep 17 00:00:00 2001 From: weiwei <54241621+weishirongzhen@users.noreply.github.com> Date: Tue, 18 Jun 2024 21:55:51 +0800 Subject: [PATCH] Fixed http provider send json rpc failed (#456) Fixed http provider send json rpc failed and make sure response id is always parse-able --- packages/polkadart/lib/provider.dart | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/packages/polkadart/lib/provider.dart b/packages/polkadart/lib/provider.dart index 5491b44a..c9f1504e 100644 --- a/packages/polkadart/lib/provider.dart +++ b/packages/polkadart/lib/provider.dart @@ -75,16 +75,20 @@ class HttpProvider extends Provider { @override Future send(String method, List params) async { - final response = await http.post(url, body: { - 'id': (++_sequence).toString(), - 'jsonrpc': '2.0', - 'method': method, - 'params': params, - }); + final response = await http.post(url, + body: jsonEncode( + { + 'id': (++_sequence).toString(), + 'jsonrpc': '2.0', + 'method': method, + 'params': params, + }, + ), + headers: {'Content-Type': 'application/json'}); final data = jsonDecode(response.body); return RpcResponse( - id: data['id'], + id: int.tryParse(data['id'].toString()) ?? -1, result: data['result'], ); }