如何发出正确的http请求?

时间:2021-03-05 16:36:53

标签: flutter http dart

我似乎无法使用我的代码发出正确的 http 请求。每当我运行以下代码时,

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/flutter (24816): SocketException: OS Error: Connection refused, errno = 111, address = datamall2.mytransport.sg

这是我尝试发出的 http 请求

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

2 个答案:

答案 0 :(得分:1)

您应该将您的 url 变量更改为:

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

答案 1 :(得分:1)

使用了错误的协议。

您已请求 httpS。 服务器只响应 http。

您可以尝试更简单的方法:

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