Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

flutter http request/response details including headers?

Tags:

flutter

dart

while http request details can easily be inspected in browser dev tools(for web app), I tried to explore, where I can find the same for requests sent in flutter App, but couldn't locate it.

like for example - I can see the actual response from api by print(response), but I am talking about complete request response including headers.

I am using VScode IDE for Flutter.

update:

I want to view the headers sent like response.header. reason for the same is like I am using flutter cahe manager and the issue I am facing is like I have set the -cache control max-age=1.

so the flutter should try to fetch the same every time I access the page, which it is doing, but it is serving the page from the cache and then fetching the request. so if there is any change is on server side, it doesn't reflect when first open the page, but shows the change on every second visit.

so what I want is like if the flutter gets 304 response from server, it will serve from the cache else it should serve from the fetched data. but it is not happening.

also the response.header is not showing response code like it is 200 or 304, so that flutter can fetch or serve from cache.

Actual code being used is like this:

Future<MyUserProfile> fetchMyUserProfile() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  final userid = prefs.getString('user_id');
  var userProfile =  await DefaultCacheManager().getSingleFile("url");        
  final response = await userProfile.readAsString();



 if (response != '') {
    print(userProfile);
    // If the server did return a 200 OK response,
    // then parse the JSON.
    return MyUserProfile.fromJson(json.decode(response));
  } else {
    // If the server did not return a 200 OK response,
    // then throw an exception.
    throw Exception('Failed to load Profile');
  }

}

like image 331
Joshi Avatar asked Oct 12 '25 06:10

Joshi


1 Answers

Don't wanna be rude, but the information you are looking for is quite easy to find... That is if you look in the right place, like official documentation.

https://api.flutter.dev/flutter/dart-io/HttpResponse-class.html

HttpResponse class ... headers → HttpHeaders Returns the response headers. [...] read-only

http.Response response = await http.get(url...
print(response.headers);

EDIT: Answering the sub-question that was added to the original question.

To check what the status code is you simply access it via response.statusCode

Example:

  http.Response response = await http.get(url...
  if (response.statusCode == 200) {
    // do something
  } else if (response.statusCode == 304) {
    // do something else
  } else {
    // handle this
  }
like image 134
Uroš Avatar answered Oct 14 '25 20:10

Uroš