로컬 ip에서는 정상적으로 코드가 실행이 되는데 공용 ip로 외부에서 접속하려고 하면 401 에러가 나옵니다. 포트 포워딩 하고 키해시랑 ip 허용 제대로 다 했는데도 그러네요. 뭐가 문제일까요?
Future<List> searchAddress(String query) async {
if (query.isEmpty) return ;
try {
print("키워드 검색 요청: $query"); // 입력 키워드 확인
var response = await Dio().get(
'https://dapi.kakao.com/v2/local/search/keyword.json',
queryParameters: {'query': query},
options: Options(headers: {'Authorization': 'KakaoAK appkey'}),
);
// 요청 결과 로그
print("키워드 검색 응답 코드: ${response.statusCode}");
print("키워드 검색 응답 데이터: ${response.data}");
if (response.statusCode == 200 && response.data['documents'].isNotEmpty) {
List<String> suggestions = (response.data['documents'] as List)
.map<String>((doc) => doc['place_name'] as String) // cast to String
.toList();
print("파싱된 추천 리스트: $suggestions");
return suggestions;
}
} catch (e) {
print("키워드 검색 중 예외 발생: $e");
}
return [];
} 이 코드에서
I/flutter (10412): 키워드 검색 요청: 안
I/flutter (10412): 키워드 검색 중 예외 발생: DioException [bad response]: This exception was thrown because the response has a status code of 401 and RequestOptions.validateStatus was configured to throw for this status code.
I/flutter (10412): The status code of 401 has the following meaning: “Client error - the request contains bad syntax or cannot be fulfilled” 이렇게 에러가 발생하고 있습니다.