Unhandled Exception: WebSocketException: Connection to 'http://10.5.11.88:7777/socketcluster/#' was not upgraded to websocket - flutter

Here is my Client code and server is in c++. But when i am trying to connect this client to server it is throwing an error that websocket is not upgrading. The server is running i have checked with js client.
Code for client
import 'package:socketcluster_client/socketcluster_client.dart';
import 'dart:async';
class MyListener extends BasicListener {
#override
void onAuthentication(Socket socket, bool status) {
print('onAuthentication: socket $socket status $status');
}
#override
void onConnectError(Socket socket, e) {
print('onConnectError: socket $socket e $e');
}
#override
void onConnected(Socket socket) {
print('onConnected: socket $socket');
new Timer.periodic(const Duration(seconds: 2), (_) {
print('Attempting to send');
socket.emit('sampleClientEvent',
{'message': 'This is an object with a message property'});
});
}
#override
void onDisconnected(Socket socket) {
print('onDisconnected: socket $socket');
}
#override
void onSetAuthToken(String token, Socket socket) {
print('onSetAuthToken: socket $socket token $token');
socket.authToken = token;
}
}
main() async {
var socket = await Socket.connect('ws://10.5.11.88:7777/socketcluster/',
listener: new MyListener());
socket.on('rand', (name, data, ack) {
print('got message $data from event $name');
ack(name, 'No error', 'Hi there buddy');
});
}
I have tried https://github.com/flutter/flutter/issues/11444 but it is not working.
Error Log
Launching lib\main.dart on AOSP on IA Emulator in debug mode...
Running Gradle task 'assembleDebug'...
√ Built build\app\outputs\apk\debug\app-debug.apk.
Installing build\app\outputs\apk\app.apk...
Syncing files to device AOSP on IA Emulator...
E/flutter ( 5399): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled
Exception: WebSocketException: Connection to
'http://10.5.11.88:7777/socketcluster/#' was not upgraded to websocket
E/flutter ( 5399): #0 _WebSocketImpl.connect.<anonymous closure>.error
(dart:_http/websocket_impl.dart:1054:9)
E/flutter ( 5399): #1 _WebSocketImpl.connect.<anonymous closure>
(dart:_http/websocket_impl.dart:1063:14)
E/flutter ( 5399): #2 _rootRunUnary (dart:async/zone.dart:1134:38)
E/flutter ( 5399): #3 _CustomZone.runUnary
(dart:async/zone.dart:1031:19)
E/flutter ( 5399): #4 _FutureListener.handleValue
(dart:async/future_impl.dart:139:18)
E/flutter ( 5399): #5 Future._propagateToListeners.handleValueCallback
(dart:async/future_impl.dart:680:45)
E/flutter ( 5399): #6 Future._propagateToListeners
(dart:async/future_impl.dart:709:32)
E/flutter ( 5399): #7 Future._completeWithValue
(dart:async/future_impl.dart:524:5)
E/flutter ( 5399): #8 Future.wait.<anonymous closure>
(dart:async/future.dart:400:22)
E/flutter ( 5399): #9 _rootRunUnary (dart:async/zone.dart:1134:38)
E/flutter ( 5399): #10 _CustomZone.runUnary
(dart:async/zone.dart:1031:19)
E/flutter ( 5399): #11 _FutureListener.handleValue
(dart:async/future_impl.dart:139:18)
E/flutter ( 5399): #12 Future._propagateToListeners.handleValueCallback
(dart:async/future_impl.dart:680:45)
E/flutter ( 5399): #13 Future._propagateToListeners
(dart:async/future_impl.dart:709:32)
E/flutter ( 5399): #14 Future._completeWithValue
(dart:async/future_impl.dart:524:5)
E/flutter ( 5399): #15 Future._asyncComplete.<anonymous closure>
(dart:async/future_impl.dart:554:7)
E/flutter ( 5399): #16 _rootRun (dart:async/zone.dart:1126:13)
E/flutter ( 5399): #17 _CustomZone.run (dart:async/zone.dart:1023:19)
E/flutter ( 5399): #18 _CustomZone.runGuarded
(dart:async/zone.dart:925:7)
E/flutter ( 5399): #19 _CustomZone.bindCallbackGuarded.<anonymous
closure> (dart:async/zone.dart:965:23)
E/flutter ( 5399): #20 _microtaskLoop
(dart:async/schedule_microtask.dart:43:21)
E/flutter ( 5399): #21 _startMicrotaskLoop
(dart:async/schedule_microtask.dart:52:5)
E/flutter ( 5399):

Actually strict application load balancer policy was applied on AWS/server
Relaxing it solved the issue

Related

Flutter: Null check operator used on a null value with in_app_purchases

My app was working fine on both iOS and Android but after updating to Flutter 2.10.0 I'm getting this issue:
Unhandled Exception: Null check operator used on a null value
E/flutter ( 8991): #0 Element.widget (package:flutter/src/widgets/framework.dart:3203:31)
E/flutter ( 8991): #1 Provider._inheritedElementOf (package:provider/src/provider.dart:341:17)
E/flutter ( 8991): #2 Provider.of (package:provider/src/provider.dart:293:30)
E/flutter ( 8991): #3 Shop.getPastPurchases.<anonymous closure> (package:my_rents/services/shop.dart:123:20)
E/flutter ( 8991): #4 _rootRunUnary (dart:async/zone.dart:1434:47)
E/flutter ( 8991): #5 _CustomZone.runUnary (dart:async/zone.dart:1335:19)
E/flutter ( 8991): #6 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1244:7)
E/flutter ( 8991): #7 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:341:11)
E/flutter ( 8991): #8 _DelayedData.perform (dart:async/stream_impl.dart:591:14)
E/flutter ( 8991): #9 _StreamImplEvents.handleNext (dart:async/stream_impl.dart:706:11)
E/flutter ( 8991): #10 _PendingEvents.schedule.<anonymous closure> (dart:async/stream_impl.dart:663:7)
E/flutter ( 8991): #11 _rootRun (dart:async/zone.dart:1418:47)
E/flutter ( 8991): #12 _CustomZone.run (dart:async/zone.dart:1328:19)
E/flutter ( 8991): #13 _CustomZone.runGuarded (dart:async/zone.dart:1236:7)
E/flutter ( 8991): #14 _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1276:23)
E/flutter ( 8991): #15 _rootRun (dart:async/zone.dart:1426:13)
E/flutter ( 8991): #16 _CustomZone.run (dart:async/zone.dart:1328:19)
E/flutter ( 8991): #17 _CustomZone.runGuarded (dart:async/zone.dart:1236:7)
E/flutter ( 8991): #18 _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1276:23)
E/flutter ( 8991): #19 _microtaskLoop (dart:async/schedule_microtask.dart:40:21)
E/flutter ( 8991): #20 _startMicrotaskLoop (dart:async/schedule_microtask.dart:49:5)
My implementation:
Future<List<PurchaseDetails>> getPastPurchases(BuildContext context) async {
if (this.purchases.isEmpty) {
final Stream<List<PurchaseDetails>> purchaseUpdated =
inAppPurchase.purchaseStream;
_subscription = purchaseUpdated.listen((purchaseDetailsList) {
if (purchaseDetailsList.isEmpty) {
Provider.of<AdState>(context, listen: false).toggleAds(context, true);
} else {
listenToPurchaseUpdated(context, purchaseDetailsList);
}
}, onDone: () {
_subscription.cancel();
}, onError: (error) {
});
await inAppPurchase.restorePurchases(); // If I comment this line everything works
}
return this.purchases;
}
Again, I made no changes on my code, just updating Flutter

flutter why can't I print device's location on screen

I was trying to print my emulated device's location but it just prints a bunch of stuff rather than the location of the device. I've checked and the device's location is turned on.
import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
void main() {
runApp(LocationApp());
}
class LocationApp extends StatelessWidget {
void locationGet() async {
Position position = await Geolocator.getCurrentPosition(
desiredAccuracy: LocationAccuracy.low);
print(position);
}
#override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: RaisedButton(
onPressed: () {
locationGet();
},
child: Text('LOCATION'),
),
),
),
);
}
}
and this is what I'm getting as an error while the location of the device is turned on and I have even allowed the use of location when it prompted me
E/flutter ( 7183): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: The location service on the device is disabled.
E/flutter ( 7183): #0 MethodChannelGeolocator._handlePlatformException (package:geolocator_platform_interface/src/implementations/method_channel_geolocator.dart:173:9)
E/flutter ( 7183): #1 MethodChannelGeolocator.getPositionStream.<anonymous closure> (package:geolocator_platform_interface/src/implementations/method_channel_geolocator.dart:152:11)
E/flutter ( 7183): #2 _invokeErrorHandler (dart:async/async_error.dart:16:24)
E/flutter ( 7183): #3 _HandleErrorStream._handleError (dart:async/stream_pipe.dart:282:9)
E/flutter ( 7183): #4 _ForwardingStreamSubscription._handleError (dart:async/stream_pipe.dart:161:13)
E/flutter ( 7183): #5 _rootRunBinary (dart:async/zone.dart:1214:47)
E/flutter ( 7183): #6 _CustomZone.runBinary (dart:async/zone.dart:1107:19)
E/flutter ( 7183): #7 _CustomZone.runBinaryGuarded (dart:async/zone.dart:1013:7)
E/flutter ( 7183): #8 _BufferingStreamSubscription._sendError.sendError (dart:async/stream_impl.dart:376:15)
E/flutter ( 7183): #9 _BufferingStreamSubscription._sendError (dart:async/stream_impl.dart:394:16)
E/flutter ( 7183): #10 _BufferingStreamSubscription._addError (dart:async/stream_impl.dart:294:7)
E/flutter ( 7183): #11 _ForwardingStreamSubscription._addError (dart:async/stream_pipe.dart:132:11)
E/flutter ( 7183): #12 _ForwardingStream._handleError (dart:async/stream_pipe.dart:97:10)
E/flutter ( 7183): #13 _ForwardingStreamSubscription._handleError (dart:async/stream_pipe.dart:161:13)
E/flutter ( 7183): #14 _rootRunBinary (dart:async/zone.dart:1214:47)
E/flutter ( 7183): #15 _CustomZone.runBinary (dart:async/zone.dart:1107:19)
E/flutter ( 7183): #16 _CustomZone.runBinaryGuarded (dart:async/zone.dart:1013:7)
E/flutter ( 7183): #17 _BufferingStreamSubscription._sendError.sendError (dart:async/stream_impl.dart:376:15)
E/flutter ( 7183): #18 _BufferingStreamSubscription._sendError (dart:async/stream_impl.dart:394:16)
E/flutter ( 7183): #19 _DelayedError.perform (dart:async/stream_impl.dart:622:14)
E/flutter ( 7183): #20 _StreamImplEvents.handleNext (dart:async/stream_impl.dart:730:11)
E/flutter ( 7183): #21 _PendingEvents.schedule.<anonymous closure> (dart:async/stream_impl.dart:687:7)
E/flutter ( 7183): #22 _rootRun (dart:async/zone.dart:1182:47)
E/flutter ( 7183): #23 _CustomZone.run (dart:async/zone.dart:1093:19)
E/flutter ( 7183): #24 _CustomZone.runGuarded (dart:async/zone.dart:997:7)
E/flutter ( 7183): #25 _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1037:23)
E/flutter ( 7183): #26 _rootRun (dart:async/zone.dart:1190:13)
E/flutter ( 7183): #27 _CustomZone.run (dart:async/zone.dart:1093:19)
E/flutter ( 7183): #28 _CustomZone.runGuarded (dart:async/zone.dart:997:7)
E/flutter ( 7183): #29 _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1037:23)
E/flutter ( 7183): #30 _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
E/flutter ( 7183): #31 _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
E/flutter ( 7183):
D/EGL_emulation( 7183): eglMakeCurrent: 0xd921a120: ver 2 0 (tinfo 0xd920f1e0)
you could try asking for permission:
LocationPermission permission = await Geolocator.checkPermission();
LocationPermission permission = await Geolocator.requestPermission();
Got it from here:
https://pub.dev/packages/geolocator
Also, in order to print the location, you should print something like this:
print(position == null ? 'Unknown' : position.latitude.toString() + ', ' + position.longitude.toString());
});
The problem is that some of the android virtual device's in android studio have bugs, in this case it was the google pixel 3, no matter what you do it will not return its location, you can fix it by just using a different device, the Nexus 5x works fine.
When you're using geolocator on a emulator, you always get the same position (37.4219983, -122.084). That's the default settings.
On a real device, I think there is actually a problem with the package on some android versions. I am getting the same error ("The location service on the device is disabled."). The issue has been reported on the github repository issue 585 . Some solutions has been proposed, like trying with different desiredAccuracy (best, high, medium).

How to convert JSON response to Dart Map<String, int> object ...?

I'm getting data from my api as a following JSON object to create chart with the data. I want to covert this DIO response to a Map<String, int> object in my flutter app.
My API response:
{
"November 20": 1,
"October 20": 3,
"September 20": 1
}
My try of creating a map object:
Future<bool> fetchChartData() async {
var response = await CasesApiService().getChartData();
Map<String, dynamic> data = jsonDecode(response.data);
}
But it shows the following error:
E/flutter ( 4733): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'String'
E/flutter ( 4733): #0 CasesProvider.fetchChartData
package:bdopsApp/providers/casesProvider.dart:86
E/flutter ( 4733): <asynchronous suspension>
E/flutter ( 4733): #1 _CasesChartViewState.build.<anonymous closure>
package:bdopsApp/…/casesApp/casesChart.dart:31
E/flutter ( 4733): #2 _InkResponseState._handleTap
package:flutter/…/material/ink_well.dart:985
E/flutter ( 4733): #3 _InkResponseState.build.<anonymous closure>
package:flutter/…/material/ink_well.dart:1101
E/flutter ( 4733): #4 GestureRecognizer.invokeCallback
package:flutter/…/gestures/recognizer.dart:183
E/flutter ( 4733): #5 TapGestureRecognizer.handleTapUp
package:flutter/…/gestures/tap.dart:598
E/flutter ( 4733): #6 BaseTapGestureRecognizer._checkUp
package:flutter/…/gestures/tap.dart:287
E/flutter ( 4733): #7 BaseTapGestureRecognizer.handlePrimaryPointer
package:flutter/…/gestures/tap.dart:222
E/flutter ( 4733): #8 PrimaryPointerGestureRecognizer.handleEvent
package:flutter/…/gestures/recognizer.dart:476
E/flutter ( 4733): #9 PointerRouter._dispatch
package:flutter/…/gestures/pointer_router.dart:77
E/flutter ( 4733): #10 PointerRouter._dispatchEventToRoutes.<anonymous closure>
package:flutter/…/gestures/pointer_router.dart:122
E/flutter ( 4733): #11 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:377:8)
E/flutter ( 4733): #12 PointerRouter._dispatchEventToRoutes
package:flutter/…/gestures/pointer_router.dart:120
E/flutter ( 4733): #13 PointerRouter.route
package:flutter/…/gestures/pointer_router.dart:106
E/flutter ( 4733): #14 GestureBinding.handleEvent
package:flutter/…/gestures/binding.dart:368
E/flutter ( 4733): #15 GestureBinding.dispatchEvent
package:flutter/…/gestures/binding.dart:348
E/flutter ( 4733): #16 RendererBinding.dispatchEvent
package:flutter/…/rendering/binding.dart:268
E/flutter ( 4733): #17 GestureBinding._handlePointerEventImmediately
package:flutter/…/gestures/binding.dart:303
E/flutter ( 4733): #18 GestureBinding.handlePointerEvent
package:flutter/…/gestures/binding.dart:267
E/flutter ( 4733): #19 GestureBinding._flushPointerEventQueue
package:flutter/…/gestures/binding.dart:225
E/flutter ( 4733): #20 GestureBinding._handlePointerDataPacket
package:flutter/…/gestures/binding.dart:208
E/flutter ( 4733): #21 _rootRunUnary (dart:async/zone.dart:1206:13)
E/flutter ( 4733): #22 _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter ( 4733): #23 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter ( 4733): #24 _invoke1 (dart:ui/hooks.dart:265:10)
E/flutter ( 4733): #25 _dispatchPointerDataPacket (dart:ui/hooks.dart:174:5)
N.B: I'm doing my final year project. Therefore, the process I'm following might not be what is used in real world project.
If you run the following example in the dartPad you will get the result that you are looking for:
import 'dart:convert';
void main() {
var jsonString= "{\"November 20\": \"1\",\"October 20\": \"2\",\"September 20\": \"3\"}";
Map<String, dynamic> data = jsonDecode(jsonString);
print(data);
}
I think you need to check the data that you are getting it from the response.data

type '() => Future<List<Food>>' is not a subtype of type <List<Food>

I am new to flutter. when I run my code , I got the error
E/flutter (16181): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: Unhandled error type '() => Future<List<Food>>' is not a subtype of type 'List<Food>' occurred in Instance of 'MenuBloc'.
E/flutter (16181): #0 MenuBloc.mapEventToState (package:restuarant_app/Bloc/menue_bloc/menu_bloc.dart:30:7)
E/flutter (16181): <asynchronous suspension>
E/flutter (16181): #1 Bloc._bindEventsToStates.<anonymous closure> (package:bloc/src/bloc.dart:232:20)
E/flutter (16181): #2 Stream.asyncExpand.onListen.<anonymous closure> (dart:async/stream.dart:579:30)
E/flutter (16181): #3 _rootRunUnary (dart:async/zone.dart:1192:38)
E/flutter (16181): #4 _CustomZone.runUnary (dart:async/zone.dart:1085:19)
E/flutter (16181): #5 _CustomZone.runUnaryGuarded (dart:async/zone.dart:987:7)
E/flutter (16181): #6 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:339:11)
E/flutter (16181): #7 _DelayedData.perform (dart:async/stream_impl.dart:594:14)
E/flutter (16181): #8 _StreamImplEvents.handleNext (dart:async/stream_impl.dart:710:11)
E/flutter (16181): #9 _PendingEvents.schedule.<anonymous closure> (dart:async/stream_impl.dart:670:7)
E/flutter (16181): #10 _rootRun (dart:async/zone.dart:1180:38)
E/flutter (16181): #11 _CustomZone.run (dart:async/zone.dart:1077:19)
E/flutter (16181): #12 _CustomZone.runGuarded (dart:async/zone.dart:979:7)
E/flutter (16181): #13 _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1019:23)
E/flutter (16181): #14 _rootRun (dart:async/zone.dart:1184:13)
E/flutter (16181): #15 _CustomZone.run (dart:async/zone.dart:1077:19)
E/flutter (16181): #16 _CustomZone.runGuarded (dart:async/zone.dart:979:7)
E/flutter (16181): #17 _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1019:23)
E/flutter (16181): #18 _microtaskLoop (dart:async/schedule_microtask.dart:43:21)
E/flutter (16181): #19 _startMicrotaskLoop (dart:async/schedule_microtask.dart:52:5)
E/flutter (16181):
E/flutter (16181): #0 Cubit.onError.<anonymous closure> (package:bloc/src/cubit.dart:140:7)
E/flutter (16181): #1 Cubit.onError (package:bloc/src/cubit.dart:141:6)
E/flutter (16181): #2 Bloc.onError (package:bloc/src/bloc.dart:113:11)
E/flutter (16181): #3 _rootRunBinary (dart:async/zone.dart:1204:38)
E/flutter (16181): #4 _CustomZone.runBinary (dart:async/zone.dart:1093:19)
E/flutter (16181): #5 _CustomZone.runBinaryGuarded (dart:async/zone.dart:995:7)
E/flutter (16181): #6 _BufferingStreamSubscription._sendError.sendError (dart:async/stream_impl.dart:358:15)
E/flutter (16181): #7 _BufferingStreamSubscription._sendError (dart:async/stream_impl.dart:376:16)
E/flutter (16181): #8 _BufferingStreamSubscription._addError (dart:async/stream_impl.dart:275:7)
E/flutter (16181): #9 _SyncBroadcastStreamController._sendError.<anonymous closure> (dart:async/broadcast_stream_controller.dart:393:20)
E/flutter (16181): #10 _BroadcastStreamController._forEachListener (dart:async/broadcast_stream_controller.dart:327:15)
E/flutter (16181): #11 _SyncBroadcastStreamController._sendError (dart:async/broadcast_stream_controller.dart:392:5)
E/flutter (16181): #12 _BroadcastStreamController._addError (dart:async/broadcast_stream_controller.dart:294:5)
E/flutter (16181): #13 _rootRunBinary (dart:async/zone.dart:1204:38)
E/flutter (16181): #14 _CustomZone.runBinary (dart:async/zone.dart:1093:19)
E/flutter (16181): #15 _CustomZone.runBinaryGuarded (dart:async/zone.dart:995:7)
E/flutter (16181): #16 _BufferingStreamSubscription._sendError.sendError (dart:async/stream_impl.dart:358:15)
E/flutter (16181): #17 _BufferingStreamSubscription._sendError (dart:async/stream_impl.dart:376:16)
E/flutter (16181): #18 _BufferingStreamSubscription._addError (dart:async/stream_impl.dart:275:7)
E/flutter (16181): #19 _ForwardingStreamSubscription._addError (dart:async/stream_pipe.dart:139:11)
E/flutter (16181): #20 _ForwardingStream._handleError (dart:async/stream_pipe.dart:104:10)
E/flutter (16181): #21 _ForwardingStreamSubscription._handleError (dart:async/stream_pipe.dart:170:13)
E/flutter (16181): #22 _rootRunBinary (dart:async/zone.dart:1204:38)
E/flutter (16181): #23 _CustomZone.runBinary (dart:async/zone.dart:1093:19)
E/flutter (16181): #24 _CustomZone.runBinaryGuarded (dart:async/zone.dart:995:7)
E/flutter (16181): #25 _BufferingStreamSubscription._sendError.sendError (dart:async/stream_impl.dart:358:15)
E/flutter (16181): #26 _BufferingStreamSubscription._sendError (dart:async/stream_impl.dart:376:16)
E/flutter (16181): #27 _DelayedError.perform (dart:async/stream_impl.dart:605:14)
E/flutter (16181): #28 _StreamImplEvents.handleNext (dart:async/stream_impl.dart:710:11)
E/flutter (16181): #29 _PendingEvents.schedule.<anonymous closure> (dart:async/stream_impl.dart:670:7)
E/flutter (16181): #30 _rootRun (dart:async/zone.dart:1180:38)
E/flutter (16181): #31 _C
I would like to get data from remote server.I use bloc library in my code.
This is part of menue_bloc.dart .I got error on line allFood= await _foodRepositiry.getAllFood() ;.
class MenuBloc extends Bloc<FoodEvent, MenuState> {
final _foodRepositiry = FoodRepository();
Map<String, List<Food>> mapFoodList;
MenuBloc({this.mapFoodList=const{}}) : super(InitialMenuState());
#override
// TODO: implement initialState
MenuState get initialState => InitialMenuState();
#override
Stream<MenuState> mapEventToState(FoodEvent event) async* {
print("loading....");
yield Loading();
if (event is GetAllFoodEvent) {
print("Get all food....");
this.mapFoodList = {};
List<Food> allFood;
allFood= await _foodRepositiry.getAllFood() ;
try {
print("in menu bloc...... ");
allFood.forEach((food) {
print(food.toString());
if (!this.mapFoodList.containsKey(food.category)) {
this.mapFoodList[food.category.toString()] = [];
}
this.mapFoodList[food.category].add(food);
});
yield Loaded(mapFoodList: this.mapFoodList);
} catch (e, stacktrace) {
print(e.toString());
print(stacktrace.toString());
When I change List<Food> allFood;to Future<List<Food>> allFood; it gives me following error
I/flutter (16181): type '() => Future<List<Food>>' is not a subtype of type 'Future<List<Food>>'
This FoodRepository code.
class FoodRepository{
final foodDao=new FoodDao();
final foodApiClient =new FoodApiClient();
Future getAllFood() async{
if(await checkInternetConnection()) {
print("fetch data from remote server");
return foodApiClient.fetchAllFood;
}else{
print("from db");
return foodDao.getAllFood();
}
}
}
This is FoodApiClient code:
class FoodApiClient{
static const baseUrl = '10.0.2.2';
final http.Client httpClient;
FoodApiClient({this.httpClient});
Future<List<Food>> fetchAllFood()async{
String url=":8080/resturant/food/allFood";
// print(url);
List<Food> foodList;
print(url);
final allFoodResponse=await httpClient.get(baseUrl+url);
print(allFoodResponse);
if (allFoodResponse.statusCode != 200) {
throw Exception('An error occured while loading food list!!! status code: '+allFoodResponse.statusCode.toString());
}
print("foodJson");
List foodJson = json.decode(allFoodResponse.body);
print(foodJson);
//foodJson.forEach((food) {foodList.add(Food.fromJson(food)); });
foodList=foodJson.map((f)=>Food.fromJson(f)).toList();
return foodList;
}
}
Future getAllFood() async{
needs to be
Future<List<Food>> getAllFood() async {
and then you need to follow the compiler errors from there, because there are a lot more instances that I cannot all name and describe here.
I strongly advise you to use proper dart formatting, and the package pedantic to tell you all about your code and how to improve it if you cannot find those places yourself.

Simple GET API request in Flutter

I'm trying to use a simple GET requests in REST to flutter, but have an error
Code:
Future<Map> timeStamp() async {
const request =
"https://armariosinteligentes.com/api/v3/timestamp";
http.Response response = await http.get(request);
print(json.decode(response.body));
}
json: {"timestamp":1566397501}
Error:
E/flutter ( 7041): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: HandshakeException: Handshake error in client (OS Error:
E/flutter ( 7041): BLOCK_TYPE_IS_NOT_01(padding.c:108)
E/flutter ( 7041): PADDING_CHECK_FAILED(rsa_impl.c:641)
E/flutter ( 7041): public key routines(a_verify.c:105)
E/flutter ( 7041): CERTIFICATE_VERIFY_FAILED: certificate signature failure(handshake.cc:352)) E/flutter ( 7041):
#0 IOClient.send (package:http/src/io_client.dart:33:23) E/flutter ( 7041): <asynchronous suspension> E/flutter ( 7041):
#1 BaseClient._sendUnstreamed (package:http/src/base_client.dart:169:38) E/flutter ( 7041): <asynchronous suspension> E/flutter ( 7041):
#2 BaseClient.get (package:http/src/base_client.dart:32:7) E/flutter ( 7041):
#3 get.<anonymous closure> (package:http/http.dart:46:36) E/flutter ( 7041):
#4 _withClient (package:http/http.dart:166:20) E/flutter ( 7041): <asynchronous suspension> E/flutter ( 7041):
#5 get (package:http/http.dart:46:5) E/flutter ( 7041):
#6 timeStamp (package:armarios_inteligentes/screens/locker_screen.dart:196:34) E/flutter ( 7041): <asynchronous suspension> E/flutter ( 7041):
#7 LockerScreenState.build.<anonymous closure> (package:armarios_inteligentes/screens/locker_screen.dart:114:15) E/flutter ( 7041):
#8 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:635:14) E/flutter ( 7041):
#9 _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:711:32) E/flutter ( 7041):
#10 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24) E/flutter ( 7041): #11 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:365:11) E/flutter ( 7041):
#12 TapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:312:7) E/flutter ( 7041):
#13 GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:156:27) E/flutter ( 7041):
#14 _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:222:20) E/flutter ( 7041):
#15 _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:198:22) E/flutter ( 7041):
#16 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7) E/flutter ( 7041):
#17 _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102:7) E/flutter ( 7041):
#18 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86:7) E/flutter ( 7041):
#19 _rootRunUnary (dart:async/zone.dart:1136:13) E/flutter ( 7041):
#20 _CustomZone.runUnary (dart:async/zone.dart:1029:19) E/flutter ( 7041):
#21 _CustomZone.runUnaryGuarded (dart:async/zone.dart:931:7) E/flutter ( 7041):
#22 _invoke1 (dart:ui/hooks.dart:250:10) E/flutter ( 7041):
#23 _dispatchPointerDataPacket (dart:ui/hooks.dart:159:5) E/flutter ( 7041):
timeStamp() async {
final response =
await http.get('http://armariosinteligentes.com/api/v3/timestamp');
if (response.statusCode == 200) {
// If server returns an OK response, parse the JSON.
var jsonResponse = json.decode(response.body);
tempoStamp tempo = new tempoStamp.fromJson(jsonResponse);
var time = ('${tempo.timestamp}');
return time;
} else {
// If that response was not OK, throw an error.
throw Exception('Failed to load post');
}
}
Result: 1566411603
Try to remove the https and put http instead. And verify your connection, you need to know if you can call websites like this in your local...