NoSuchMethodError:getter';长度';在null上调用了。在调用put api时?
我在处理颤振时遇到了一个问题,每当我试图调用http.put请求时,就会出现奇怪的问题 这是我的主要代码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 {
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)