2

I've looked elsewhere and every site keeps telling me this is effectively an internet connectivity error... But I know that can't be correct.

I'm using Flutter (dart) to program this for iOS (on a Mac). I've tried this on both the iOS simulator and an actual iPhone, and I'm getting the same error. Other calls to the same server work fine.

Future<Map> createTrip() async {

  http.Response response = await http.post(
    url,
    headers: <String, String>{'authorization': basicAuth},
    body: {'user_phone': user_phone, 'locationId1': locationId1, 'locationId2': locationId2},

  );
  info  = jsonDecode(response.body);
  sessionID = info['session_id'];
  print (info['session_id']);
  return info;
}

Works fine. In the response body it contains the session_id, and print-screen proves this variable is not empty.

BUT this:

Future<Map> getServerData(sessionID) async {
  url = url + sessionID; //. <---  adding sessionID to end of a url-address 
  http.Response response = await http.get(
    url,
    headers: <String, String>{'authorization': basicAuth},
  );
  Map data = jsonDecode(response.body);
  return data;
}

Does NOT work. Not entirely sure why. I even tried allowing unsecured data-transmission to the server in the info.plist.

My understanding or expectation is that MAYBE this is because the url I'm requesting doesn't exist on the server? It's the only thing that makes sense to me. If not, then what COULD it be?

Flutter Doctor results:

[✓] Flutter (Channel master, v1.14.2-pre.54, on Mac OS X 10.15.2 19C57, locale
    en-CA)
    • Flutter version 1.14.2-pre.54 at /Users/iosdev/Developer/flutter
    • Framework revision da0bfd1c93 (32 hours ago), 2020-01-21 05:59:07 -0500
    • Engine revision c15efb9231
    • Dart version 2.8.0 (build 2.8.0-dev.3.0 f910a7575f)


[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/iosdev/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling
      support)
    • Platform android-29, build-tools 29.0.2
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_202-release-1483-b49-5587405)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.3.1, Build version 11C504
    • CocoaPods version 1.8.4

[✓] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 42.1.1
    • Dart plugin version 191.8593
    • Java version OpenJDK Runtime Environment (build
      1.8.0_202-release-1483-b49-5587405)

[✓] Connected device (2 available)
    • Phillip’s iPhone  • 52a4fba45a6767b88e4dddd881201205138cac0e • ios • iOS
      13.3
    • iPhone 11 Pro Max • 2F6FBCBE-CC96-4044-84FA-0DE39E441830     • ios •
      com.apple.CoreSimulator.SimRuntime.iOS-13-3 (simulator)

• No issues found!
7
  • What is the url you are trying to request? Are you sure it's valid and is pointing to a place that actually exists? Commented Jan 22, 2020 at 19:10
  • For privacy reasons I can't share the actual url, but I can say that the base url 100% exists. I've been told by the owner/operator of the server that the correct syntax is supposedly to append the sessionID onto the end of the rest of the url, and I've tried a couple different formats for that, all giving the same error. The one thing that I CAN'T verify is that the test-server they set-up actually records and maintains the session. I have asked this of the server-admin but they haven't responded yet. Commented Jan 22, 2020 at 19:16
  • Are you separating the base URL and the session ID with a /? Commented Jan 22, 2020 at 19:17
  • Yes. But thanks for asking! Simple typos like that could easily have been the problem. Commented Jan 22, 2020 at 19:25
  • In that case if the base URL https://www.example.com/ works and the session ID appended URL https://www.example.com/12345678 returns with a 404, then the session ID appended URL is pointing to a location on the server that doesn't exist. Maybe the server is configured wrong to grab the session ID and route to the correct location, or maybe you were meant to pass it as a query parameter (e.g. https://www.example.com/?id=12345678). It's hard to know for sure, and you're going to have to wait for the admin to get back to you to figure out the problem. Commented Jan 22, 2020 at 19:48

1 Answer 1

0

Make sure you have internet on your emulator or device. Check by opening your internet browser on your emulator or device to see if google.com will display successfully

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.