Как получить последние изменения из заголовка http с помощью dttio HttpClient - PullRequest
0 голосов
/ 19 сентября 2019

Привет! Я хочу получить Last_modified из заголовка http с помощью dart.io. HttpClient ()

Пример кода:

var client = new HttpClient();
  HttpClientRequest req = await client.getUrl(Uri.parse("sayagh.asnafhormozgan.ir/wp-content/tables/essentials.csv"));
  var a = req.headers.value("lastModifiedHeader");

, но возвращает ноль;

какЯ могу получить Последнее изменение?

, но когда я получаю его с помощью curl:

curl -v "sayagh.asnafhormozgan.ir/wp-content/tables/drawer.csv"
*   Trying 51.89.173.235:80...
* TCP_NODELAY set
* Connected to sayagh.asnafhormozgan.ir (51.89.173.235) port 80 (#0)
> GET /wp-content/tables/drawer.csv HTTP/1.1
> Host: sayagh.asnafhormozgan.ir
> User-Agent: curl/7.65.3
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: nginx
< Date: Thu, 19 Sep 2019 10:05:37 GMT
< Content-Type: text/csv
< Content-Length: 599
< Connection: keep-alive
< Last-Modified: Thu, 19 Sep 2019 09:38:30 GMT
< Accept-Ranges: bytes
< Cache-Control: max-age=0
< Expires: Thu, 19 Sep 2019 10:05:37 GMT
< 

1 Ответ

0 голосов
/ 19 сентября 2019

Вам нужно будет дождаться второго ответа, чтобы получить ответ, а именно:

Запрос getUrl - это двухэтапный процесс, запускаемый двумя фьючерсами.Когда первое будущее завершается с HttpClientRequest, базовое сетевое соединение было установлено, но данные не были отправлены.В функции обратного вызова для первого будущего, HTTP-заголовки и тело могут быть установлены по запросу.Либо первая запись в объект запроса, либо вызов close отправляет запрос на сервер.

См. https://api.dartlang.org/stable/2.5.0/dart-io/HttpClient-class.html

Также это должно быть 'last-modified', а не 'lastModifiedHeader' (или даже лучше использовать статическую переменную const HttpHeaders.lastModifiedHeader), например:

HttpClient client = HttpClient();
HttpClientRequest req = await client.getUrl(Uri.parse(
    'http://sayagh.asnafhormozgan.ir/wp-content/tables/essentials.csv'));
HttpClientResponse response = await req.close();
print(response.headers.value(HttpHeaders.lastModifiedHeader));
...