dart:io
庫中HttpClientRequest.followRedirects
屬性的用法介紹如下。
用法:
bool
followRedirects
read / write
是否自動跟隨重定向。
如果此請求不應自動跟隨重定向,請將此屬性設置為 false
。默認值為 true
。
自動重定向隻會發生在 "GET" 和 "HEAD" 請求,並且僅適用於狀態代碼 HttpStatus.movedPermanently (301)、HttpStatus.found (302)、HttpStatus.movedTemporarily(302,HttpStatus.found 的別名)、HttpStatus.seeOther (303)、HttpStatus.temporaryRedirect (307) 和HttpStatus.permanentRedirect (308)。對於 HttpStatus.seeOther (303),自動重定向也將發生在 "POST" 請求中,並且在跟隨重定向時方法更改為 "GET"。
添加到請求的所有標頭都將添加到重定向請求中,除非轉發敏感標頭(如 "Authorization"、"WWW-Authenticate" 和 "Cookie")。如果重定向到不是初始域的子域匹配或完全匹配的域,則將跳過這些標頭。例如,從 "foo.com" 到 "foo.com" 或 "sub.foo.com" 的重定向將轉發敏感標頭,但到 "bar.com" 的重定向不會。
與請求一起發送的任何正文都不會成為重定向請求的一部分。
要精確控製重定向處理,請將此屬性設置為 false
並發出單獨的 HTTP 請求來處理重定向。例如:
final client = HttpClient();
var uri = Uri.parse("http://localhost/");
var request = await client.getUrl(uri);
request.followRedirects = false;
var response = await request.close();
while (response.isRedirect) {
response.drain();
final location = response.headers.value(HttpHeaders.locationHeader);
if (location != null) {
uri = uri.resolve(location);
request = await client.getUrl(uri);
// Set the body or headers as desired.
request.followRedirects = false;
response = await request.close();
}
}
// Do something with the final response.
相關用法
- Dart HttpClientRequest.abort用法及代碼示例
- Dart HttpClientRequest用法及代碼示例
- Dart HttpClientResponse用法及代碼示例
- Dart HttpClient.findProxy用法及代碼示例
- Dart HttpClient用法及代碼示例
- Dart HttpClient.findProxyFromEnvironment用法及代碼示例
- Dart HttpClient.connectionFactory用法及代碼示例
- Dart HttpClient.keyLog用法及代碼示例
- Dart HttpRequest.postFormData用法及代碼示例
- Dart HttpOverrides用法及代碼示例
- Dart HttpServer.defaultResponseHeaders用法及代碼示例
- Dart HttpRequest.request用法及代碼示例
- Dart HttpDate.parse用法及代碼示例
- Dart HttpRequest用法及代碼示例
- Dart HttpHeaders用法及代碼示例
- Dart HttpServer用法及代碼示例
- Dart HttpRequest.getString用法及代碼示例
- Dart HttpRequest構造函數用法及代碼示例
- Dart HttpResponse用法及代碼示例
- Dart HtmlCollection.last用法及代碼示例
- Dart HtmlEscape用法及代碼示例
- Dart HtmlEscapeMode用法及代碼示例
- Dart HtmlCollection.elementAt用法及代碼示例
- Dart HtmlCollection.length用法及代碼示例
- Dart HtmlDocument.registerElement2用法及代碼示例
注:本文由純淨天空篩選整理自dart.dev大神的英文原創作品 followRedirects property。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。