[flutter] 플러터 GET 요청에 대한 리다이렉션을 처리하는 방법은 무엇인가요?

플러터에서 GET 요청을 보낼 때, 일반적으로 HTTP 패키지를 사용합니다. 이 패키지를 사용하여 GET 요청을 보내면, 서버에서 리다이렉션 응답이 발생하면 플러터는 기본적으로 이를 처리하게 됩니다. 하지만, 경우에 따라 자신만의 리다이렉션 로직을 추가하고 싶을 수도 있습니다. 이를 위해 “http” 패키지의 RedirectRequest 클래스를 사용하여 리다이렉션을 처리할 수 있습니다.

아래는 플러터에서 GET 요청에 대한 리다이렉션을 처리하는 예제 코드입니다:

import 'package:http/http.dart' as http;

void main() async {
  var response = await http.get('https://example.com');

  if (response.statusCode == 302) {
    var redirectUrl = response.headers['location'];
    if (redirectUrl != null) {
      var redirectResponse = await http.get(redirectUrl);
      // 리다이렉트된 응답 처리
      print(redirectResponse.body);
    }
  } else {
    // 리다이렉션이 발생하지 않은 경우 응답 처리
    print(response.body);
  }
}

이 예제에서는 http 패키지를 사용하여 GET 요청을 보내고, 리다이렉션 응답을 처리합니다. response.statusCode를 통해 응답 상태 코드를 확인하고, 상태 코드가 302인 경우 리다이렉션이 발생했다고 가정합니다. response.headers['location']을 통해 리다이렉션된 URL을 가져올 수 있습니다. 이후, http.get을 사용하여 리다이렉션된 URL로 GET 요청을 보내고, 해당 응답을 처리합니다.

이것은 일반적인 방법으로, 플러터에서 GET 요청에 대한 리다이렉션을 처리하는 방법입니다. 응답 상태 코드를 확인하고, 리다이렉션된 URL을 추출하여 새로운 GET 요청을 보내는 방식으로 리다이렉션을 처리할 수 있습니다.

참고 자료: