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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。