Emmanuel
Emmanuel

Reputation: 345

How to make a proper http request?

I can't seem to make a proper http request with my code. Whenever I run the following code,

var url = Uri.https('datamall2.mytransport.sg', '/ltaodataservice/BusArrivalv2?BusStopCode=', {'BusStopCode': busStopCode});
  final response = await http.get(
    url,
    headers: <String, String>{
      'Content-Type': 'application/json',
      'AccountKey': accountKey,
    },
  );

I get the following error

I/flutter (24816): SocketException: OS Error: Connection refused, errno = 111, address = datamall2.mytransport.sg

This is the http request I'm trying to make

http://datamall2.mytransport.sg/ltaodataservice/BusArrivalv2?BusStopCode=busStopCode (busStopCode is a 5 digit number)

Upvotes: 1

Views: 255

Answers (2)

Baker
Baker

Reputation: 28100

The wrong protocol is being used.

You've requested httpS. The server is only responding to http.

You could try something simpler:

String url = 'http://datamall2.mytransport.sg/ltaodataservice/BusArrivalv2?$busStopCode';
  final response = await http.get(
    url,
    headers: <String, String>{
      'Content-Type': 'application/json',
      'AccountKey': accountKey,
    },
  );

Upvotes: 1

Tayo.dev
Tayo.dev

Reputation: 1666

You should change your url variable to:

var url = Uri.http('datamall2.mytransport.sg', '/ltaodataservice/BusArrivalv2', {'BusStopCode': busStopCode});

Upvotes: 1

Related Questions