在我的项目中,我发送简单的授权请求:
http.Response response = await http.get(url, headers: headers);
Run Code Online (Sandbox Code Playgroud)
作为回应,我有 cookieID 和其他信息,但我没有收到重定向 url。
我怎么能带走他?
正如 jamesdlin 上面提到的和这个github 问题提到的,http 的重定向默认设置为 true。为了避免重定向,followRedirects 需要设置为 false。可以按如下方式获取 redirectUri:
import 'package:http/http.dart' as http;
http.Request req = http.Request("Get", Uri.parse(YOUR_URL_HERE))..followRedirects = false;
http.Client baseClient = http.Client();
http.StreamedResponse response = await baseClient.send(req);
Uri redirectUri = Uri.parse(response.headers['location'])
Run Code Online (Sandbox Code Playgroud)
默认情况下,package:http底层HttpClient将自动遵循 HTTP 重定向。
如果您不想这样做,则可以通过设置HttpClientRequest.followRedirects为 来禁用它false。
package:http通过暴露这一点BaseRequest.followRedirects。
| 归档时间: |
|
| 查看次数: |
1073 次 |
| 最近记录: |