Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NoSuchMethodError:getter';长度';在null上调用了。在调用put api时?_Api_Flutter_Restapi - Fatal编程技术网

NoSuchMethodError:getter';长度';在null上调用了。在调用put api时?

NoSuchMethodError:getter';长度';在null上调用了。在调用put api时?,api,flutter,restapi,Api,Flutter,Restapi,我在处理颤振时遇到了一个问题,每当我试图调用http.put请求时,就会出现奇怪的问题 这是我的主要代码 saveBookMarksLogin(id) async { final prefs = await SharedPreferences.getInstance(); var bookmarkData = { "userId": userId, "newsFeedId": id, }; try {

我在处理颤振时遇到了一个问题,每当我试图调用http.put请求时,就会出现奇怪的问题

这是我的主要代码

saveBookMarksLogin(id) async {
    final prefs = await SharedPreferences.getInstance();
    var bookmarkData = {
      "userId": userId,
      "newsFeedId": id,
    };
    try {
      final response = await http.put(
        Uri(
          scheme: 'http',
          host: host,
          port: 3000,
          path: '/v1/saveBookmark',
        ),
        body: bookmarkData,
        headers: {'Content-Type': 'application/x-www-form-urlencoded'},
      );

      if (response.body != null) {
        prefs.setStringList("bookmarkIds", [id]);
        return json.decode(response.body);
      }
    } on SocketException {
      Fluttertoast.showToast(
        msg: "No internet connection",
        toastLength: Toast.LENGTH_SHORT,
        gravity: ToastGravity.BOTTOM,
        timeInSecForIos: 1,
        textColor: Colors.white,
        fontSize: 16.0,
        backgroundColor: Colors.black,
      );
    }
  }
调试时问题的堆栈跟踪

I/flutter (23979): error NoSuchMethodError: The getter 'length' was called on null.
I/flutter (23979): Receiver: null
I/flutter (23979): Tried calling: length
I/flutter (23979): stacktrace #0      Object.noSuchMethod  (dart:core-patch/object_patch.dart:51:5)
I/flutter (23979): #1      _Uri._uriEncode  (dart:core-patch/uri_patch.dart:44:23)
I/flutter (23979): #2      Uri.encodeQueryComponent  (dart:core/uri.dart:1103:17)
I/flutter (23979): #3      mapToQuery.<anonymous closure> 
package:http/src/utils.dart:19
I/flutter (23979): #4      CastMap.forEach.<anonymous closure>  (dart:_internal/cast.dart:286:8)
I/flutter (23979): #5      _LinkedHashMapMixin.forEach  (dart:collection-patch/compact_hash.dart:377:8)
I/flutter (23979): #6      CastMap.forEach  (dart:_internal/cast.dart:285:13)
I/flutter (23979): #7      mapToQuery 
package:http/src/utils.dart:17
I/flutter (23979): #8      Request.bodyFields= 
package:http/src/request.dart:128
I/flutter (23979): #9      BaseClient._sendUnstreamed 
package:http/src/base_client.dart:163
I/flutter (23979): <asynchronous suspension>
I/flutter (23979): #10     BaseClient.put 
package:http/src/base_client.dart:76
I/flutter (23979): #11     put.<anonymous closure> 
package:http/http.dart:94
I/flutter (23979): #12     _withClient 
package:http/http.dart:166
I/flutter (23979): <asynchronous suspension>
I/flutter (23979): #13     put 
package:http/http.dart:93
I/flutter (23979): #14     _NewsPageState.saveBookMarksLogin (package:i
I/flatter(23979):错误NoSuchMethodError:对null调用了getter“length”。
I/颤振(23979):接收器:空
I/颤振(23979):尝试呼叫:长度
I/颤振(23979):stacktrace#0 Object.noSuchMethod(省道:核心补丁/对象补丁。省道:51:5)
I/flatter(23979):#1_Uri._uriEncode(dart:core patch/Uri_patch.dart:44:23)
I/flatter(23979):#2 Uri.encodeQueryComponent(dart:core/Uri.dart:1103:17)
I/颤振(23979):#3映射查询。
•Dart插件可从以下位置安装:
•Java版本OpenJDK运行时环境(构建11.0.8+10-b944.6842174)

[√] VS代码(版本1.56.1) •C:\Users\lkrja\AppData\Local\Programs\Microsoft VS代码处的VS代码 •颤振扩展版本3.22.0

[√] 已连接设备(4个可用) •为x86(移动设备)构建的Android SDK•emulator-5554•Android-x86•Android 8.1.0(API 27)(emulator) •Windows(桌面)•Windows•Windows-x64•Microsoft Windows[版本10.0.21359.1] •Chrome(网络)•Chrome•网络javascript•谷歌Chrome 90.0.4430.212 •Edge(web)•Edge•web javascript•Microsoft Edge 90.0.818.56


•未发现任何问题!

这可能来自代码中的Json部分。返回Json对象后,您对它做了什么?它无法在此处为我提供任何响应Json.decode(response.body)