Flutter 无法正确处理 http 重定向
Flutter does not handle http redirect correctly
您好,我在 flutter 中遇到以下问题。我发出了一个 post http 请求,在浏览器中网站 returns 状态为 302,重定向的位置在响应的 header 中称为“位置”,到目前为止一切顺利。但是当我在 flutter 中发出请求时,响应状态为 301,并且我没有在 header
中得到重定向 link
我只进入“位置”header 我发出请求的 url,而不是应该重定向到的新 url
这是我提出请求的代码部分
http.Request req = http.Request("Post", uri)..followRedirects = false;
req.body = 'criterio=3&valor=$codigo&nombre_apellidos=&op=Buscar&form_build_id=$idForm&form_id=tracking_form';
http.Client baseClient = http.Client();
http.StreamedResponse response = await baseClient.send(req);
print(response.statusCode);
print(response.headers);
这是您后端的问题,而不是 Flutter 或 http
包的问题。它不会更改 HTTP 响应代码或 headers.
至于您的浏览器和您的代码之间响应不同的原因,是您的请求引起的。
也许您的请求 body 格式不正确 - 它不是以非常可靠的方式形成的。哪个值中有一个符号?
否则,可能是请求header不正确。您的请求看起来像一个表单提交,但应该包括一个 header 描述 body 格式。
您好,我在 flutter 中遇到以下问题。我发出了一个 post http 请求,在浏览器中网站 returns 状态为 302,重定向的位置在响应的 header 中称为“位置”,到目前为止一切顺利。但是当我在 flutter 中发出请求时,响应状态为 301,并且我没有在 header
中得到重定向 link我只进入“位置”header 我发出请求的 url,而不是应该重定向到的新 url
这是我提出请求的代码部分
http.Request req = http.Request("Post", uri)..followRedirects = false;
req.body = 'criterio=3&valor=$codigo&nombre_apellidos=&op=Buscar&form_build_id=$idForm&form_id=tracking_form';
http.Client baseClient = http.Client();
http.StreamedResponse response = await baseClient.send(req);
print(response.statusCode);
print(response.headers);
这是您后端的问题,而不是 Flutter 或 http
包的问题。它不会更改 HTTP 响应代码或 headers.
至于您的浏览器和您的代码之间响应不同的原因,是您的请求引起的。
也许您的请求 body 格式不正确 - 它不是以非常可靠的方式形成的。哪个值中有一个符号?
否则,可能是请求header不正确。您的请求看起来像一个表单提交,但应该包括一个 header 描述 body 格式。