본문 바로가기

Languages/Dart & Flutter

Dart json API 파라미터 배열로 보내는 법

final req = Uri.https(
        'api주소',
        'getPublic', {
      'latitude': '37.56379999022149',
      'longitude': '126.96231432716287',
      'range': '1000',
      'class_1': 'health',
    });

    final response = await http.get(req);

처음에 이렇게 만들어서 api 호출을 했다.

그러다보니 class_1의 health 만 찾아온다. 당연히 하지만 난 배열로 class_1의 4가지를 찾아와야했다.

그래서 어떻게하면 class_1에 파라미터를 보내야되지 하면어 이것저것 해봤지만 당연히 안됐다.

 

class_1 : ['array1','array2']

class_1 : ['array1','array2'].tostring()

 

그래서 검색을 했다.

스택 오버플러우에 나와 똑같은 질문을 한것을 찾을 수 있었다.

 

 var uri = Uri(
        scheme: 'https',
        host: 'api주소',
        path: 'getPublic',
        queryParameters: {
          'latitude': '37.56379999022149',
          'longitude': '126.96231432716287',
          'range': '1000',
          'class_1': ['health', 'office', 'transportation', 'edu'],
        });
    final response = await http.get(uri);

get방식으로 보내는 것이 아니라 post라면 body에 넣어서 보낼 수 있지만 get에는 body가 없기 때문에

Uri를 저렇게 작성해 주면 된다.

 

이걸로 2시간정도 막혀있었다.

 

stackoverflow.com/questions/57367391/dart-sending-get-parameters-that-are-lists